FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour 32 Bit BCC7 *.MAK -> MSVC 64 Bit ?
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
32 Bit BCC7 *.MAK -> MSVC 64 Bit ?
Posted: Tue Nov 15, 2022 06:07 AM
hi,

i have "split" my CODE and use *.MAK under BCC7 32 Bit

Question : how under MSVC 64 Bit :?:
Code (fw): Select all Collapse
if not exist obj md obj
c:\bcc7\bin\make -fTGRID.mak
Code (fw): Select all Collapse
HBDIR=c:\harbour
BCDIR=c:\BCC7
FWDIR=c:\fwh

#change these paths as needed
.path.OBJ = .\obj
.path.PRG = .\
.path.CH  = $(FWDIR)\include;$(HBDIR)\include
.path.C   = .\
.path.rc  = .\

#important: Use Uppercase for filenames extensions, in the next two rules!

PRG =        \
TGRID.PRG    \
EXPCLASS.PRG    \
HB_FUNC.PRG

PROJECT    : DUALEXP.exe

DUALEXP.exe  : $(PRG:.PRG=.OBJ) DUALEXP.res
   echo off
   echo $(BCDIR)\lib\c0w32.obj + > b32.bc
   echo obj\TGRID.obj obj\EXPCLASS.obj obj\HB_FUNC.obj, + >> b32.bc
   echo DUALEXP.exe, + >> b32.bc
   echo DUALEXP.map, + >> b32.bc
   echo $(FWDIR)\lib\FiveH.lib $(FWDIR)\lib\FiveHC.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbrtl.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbvm.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\gtgui.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hblang.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbmacro.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbrdd.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\rddntx.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\rddcdx.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\rddfpt.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbsix.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbdebug.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbcommon.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbpp.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbwin.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbcpage.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbct.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbpcre.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbcplr.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\xhb.lib + >> b32.bc
   
   echo $(HBDIR)\lib\win\bcc\hbziparc.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbmzip.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbzlib.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\minizip.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\png.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbusrrdd.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbtip.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbzebra.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbcurl.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\libcurl.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbxpp.lib +  >> b32.bc

   echo $(FWDIR)\lib\dolphin.lib +  >> b32.bc
   
   echo $(BCDIR)\lib\cw32.lib + >> b32.bc
   echo $(BCDIR)\lib\uuid.lib + >> b32.bc 
   echo $(BCDIR)\lib\ws2_32.lib +  >> b32.bc
   echo $(BCDIR)\lib\psdk\gdiplus.lib +  >> b32.bc
   echo $(BCDIR)\lib\import32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\odbc32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\nddeapi.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\iphlpapi.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\msimg32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\psapi.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\rasapi32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\shell32.lib,  >> b32.bc

   IF EXIST DUALEXP.res echo DUALEXP.res >> b32.bc
   $(BCDIR)\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
   del b32.bc

.PRG.OBJ:
  $(HBDIR)\bin\harbour $< /L /N /W /Oobj\ /I$(FWDIR)\include;$(HBDIR)\include
  $(BCDIR)\bin\bcc32 -c -tWM -I$(HBDIR)\include -oobj\$& obj\$&.c

.C.OBJ:
  echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
  echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
  $(BCDIR)\bin\bcc32 -oobj\$& @tmp $&.c
  del tmp

DUALEXP.res : DUALEXP.rc
  $(BCDIR)\bin\brc32.exe -r DUALEXP.rc
greeting,

Jimmy
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Tue Nov 15, 2022 06:40 AM

Dear Jimmy,

Please review FWH\samples\buildh64.bat and adapt your make file to it.

Please review FWH\makes\hbmk2.zip as hbmk2 is the easiest way to build Harbour + FWH apps

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Tue Nov 15, 2022 10:46 AM
hi Antonio.
Please review FWH\makes\hbmk2.zip as hbmk2 is the easiest way to build Harbour + FWH apps
thx for Answer

i have not found hbmk2.zip ... :(
c:\fwh64\makes\bormake.zip
c:\fwh64\makes\gccmake.zip
c:\fwh64\makes\ide_msvc2012.zip
c:\fwh64\makes\msmake.zip
c:\fwh64\makes\vs2010_make.zip
as also Everything does not found hbmk2.zip it is not on my PC

Please review FWH\samples\buildh64.bat and adapt your make file to it.
ok ... but how to "call" it later when have all those "echo" in new *.MAK (?)

should i use vs2010_make.zip :?:
Code (fw): Select all Collapse
c:\"Program Files (x86)\Microsoft Visual Studio 10.0"\VC\bin\nmake -ftest.mak
if errorlevel==0 one.exe
seem to be for 32 Bit

---

buildh64.bat seems for single File only :?:

when try
Code (fw): Select all Collapse
buildh64.bat A B C
it does create A.c B.c and C.c but does not link B.c and C.c so i get "missing"

sorry for all those Question but as Newbie i have to learn it ...
greeting,

Jimmy
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Tue Nov 15, 2022 04:17 PM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Wed Nov 16, 2022 05:47 AM
hi Antonio,
Antonio Linares wrote:Here you have it:
https://github.com/FiveTechSoft/FWH_tools/blob/master/hbmk2.zip
thx for link

have download it and use go64.bat
Code (fw): Select all Collapse
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
c:\harbour\bin\hbmk2 test64.hbp -comp=msvc64
test.exe

-Ic:\fwh\include
-Lc:\fwh\lib
which i modify to my Path thi Way
Code (fw): Select all Collapse
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
c:\harbour64\bin\hbmk2 test64.hbp -comp=msvc64
test.exe

-Ic:\fwh64\include
-Lc:\fwh64\lib
but when run go64 i got this
c:\fwh64\0\TGRID>go64

c:\fwh64\0\TGRID>call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.2.6
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
Error BASE/1126 Argument error: STRTRAN (Quit)
Error BASE/1126 Argument error: STRTRAN
Called from STRTRAN(0)
Called from __HBMK(0)
Called from HBMK_LOCAL_ENTRY(0)
Called from __HBMK_FAKE_ENTRY(0) Der Befehl "test.exe" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
where does STRTRAN() came from :shock:

but it work when use
Code (fw): Select all Collapse
c:\fwh64\samples\buildh64.bat TEST
---

test again with BCC7 64 Bit and MAKE.EXE from 32 Bit BCC
c:\fwh64\0\TGRID>go

c:\fwh64\0\TGRID>if not exist obj md obj
c:\fwh64\0\TGRID>c:\bcc7\bin\make -fTGRID.m
MAKE Version 5.2 Copyright (c) 1987, 2000
c:\harbour64\bin\harbour .\DUALGRID
Harbour 3.4.0dev (8eeef91) (2021-09-26 11:2
Copyright (c) 1999-2021, https://github.com
Compiling '.\DUALGRID.PRG'...
Lines 11471, Functions/Procedures 67
Generating C source output to 'obj\DUALGRID
c:\BCC7\bin\bcc64 -c -tWM -Ic:\harb
Embarcadero C++ 7.10 for Win64 Copyright (c
obj\DUALGRID.c:
In file included from obj\DUALGRID.c:3:
In file included from c:\harbour64\include\
c:\harbour64\include/hbdefs.h:50:10: fatal
#include <stdarg.h>
^
1 error generated.

** error 1 ** deleting .\obj\DUALGRID.OBJ
greeting,

Jimmy
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Wed Nov 16, 2022 07:30 AM

Dear Jimmy,

Please send me your files and I will build the makefile for you

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Wed Nov 16, 2022 11:21 AM
Dear Jimmy,

Here you have it:

go.bat
Code (fw): Select all Collapse
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
c:\harbour\bin\win\msvc\hbmk2 dualgrid.hbp -comp=msvc
dualgrid.hbp
Code (fw): Select all Collapse
-gui

-Ic:\fwh\include

dualgrid.prg
hb_func.prg
tgrid.prg

-Lc:\fwh\lib

-lFiveH32
-lFiveHC32

-lgdiplus
-lole32
-lOleDlg
-lversion

xhb.hbc
hbct.hbc
hbwin.hbc
hbmzip.hbc
hbziparc.hbc
hbfoxpro.hbc

-ldflag=/NODEFAULTLIB:msvcrt

dualgrid.rc
It looks like the Total Commander! excellent work Jimmy :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Wed Nov 16, 2022 11:32 AM
Antonio Linares wrote:-ldflag=/NODEFAULTLIB:msvcrt
I recommend to use -MD compiler switch and replace the above with
Code (fw): Select all Collapse
-nodefaultlib:libcmt
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Wed Nov 16, 2022 04:24 PM
hi Antonio,
Antonio Linares wrote:Here you have it:
thx for Link File and Help

as i like to use it for 64 Bit i have change
x86 -> amd64
c:\fwh\ -> c:\fwh64\
-lFiveH64 -lFiveHC64
... but fail :(
Code (fw): Select all Collapse
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 
c:\harbour64\bin\win\msvc\hbmk2 dualgrid.hbp -comp=msvc
Code (fw): Select all Collapse
    -gui

    -Ic:\fwh64\include

    dualgrid.prg
    hb_func.prg
    tgrid.prg

    -Lc:\fwh64\lib

    -lFiveH64
    -lFiveHC64

    -lgdiplus
    -lole32
    -lOleDlg
    -lversion

    xhb.hbc
    hbct.hbc
    hbwin.hbc
    hbmzip.hbc
    hbziparc.hbc
    hbfoxpro.hbc

    -ldflag=/NODEFAULTLIB:msvcrt

    dualgrid.rc
it produce a lot of Error (about LIBs ?) ... what do i need "more" for 64 Bit :?:
Antonio Linares wrote:It looks like the Total Commander!
YES, Design is like Total Commander and also Hot-Key "should" be the same
ShFileOperation work so you can "copy" or "move" Files/Folder with Animation
"delete" does work but not "move to Paperbin" (FOF_ALLOWUNDO) ... something have change with Rights ...

i have "split" CODE while i want to "share CLASS TGRID" to Fivewin
but still need some Time to learn Fivewin and work on Demo
greeting,

Jimmy
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Wed Nov 16, 2022 05:43 PM
Jimmy wrote:ShFileOperation work so you can "copy" or "move" Files/Folder with Animation
"delete" does work but not "move to Paperbin" (FOF_ALLOWUNDO) ... something have change with Rights ...
Interesting. Can you show a sample of ShFileOperation usage?
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Thu Nov 17, 2022 06:36 AM
Jimmy,

> it produce a lot of Error (about LIBs ?) ... what do i need "more" for 64 Bit :?:

What errors ? Please post them here
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Thu Nov 17, 2022 07:56 AM
hi Antonio
Antonio Linares wrote:> it produce a lot of Error (about LIBs ?) ... what do i need "more" for 64 Bit :?:
What errors ? Please post them here
please use Go64 and *.HBP which i have posted

i have change "your" Go a and HBP to use for 64 Bit ... but i got a very long list so i have not post it
greeting,

Jimmy
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Thu Nov 17, 2022 07:57 AM
hi Enrico,
Enrico Maria Giordano wrote:Interesting. Can you show a sample of ShFileOperation usage?
have update this Thread
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=42417&p=255468
greeting,

Jimmy
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Thu Nov 17, 2022 08:03 AM
Dear Jimmy,

I just ported the make to 64 bits and worked fine on first try:

go.bat
Code (fw): Select all Collapse
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
c:\harbour\bin\win\msvc64\hbmk2 dualgrid.hbp -comp=msvc64
dualgrid.hbp
Code (fw): Select all Collapse
-gui

-Ic:\fwh\include

dualgrid.prg
hb_func.prg
tgrid.prg

-Lc:\fwh\lib

-lFiveH64
-lFiveHC64

-lgdiplus
-lole32
-lOleDlg
-lversion

xhb.hbc
hbct.hbc
hbwin.hbc
hbmzip.hbc
hbziparc.hbc
hbfoxpro.hbc

-ldflag=/NODEFAULTLIB:msvcrt

dualgrid.rc
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: 32 Bit BCC7 *.MAK -&gt; MSVC 64 Bit ?
Posted: Thu Nov 17, 2022 08:53 AM
hi Antonio,
Antonio Linares wrote:I just ported the make to 64 bits and worked fine on first try:
YES :D
now it work using MSVC 64 Bit, thx
greeting,

Jimmy

Continue the discussion