FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Error compiling with Microsoft visual studio 2019
Posts: 244
Joined: Mon Jun 05, 2006 09:39 PM
Error compiling with Microsoft visual studio 2019
Posted: Fri Oct 01, 2021 09:15 PM
This happens when I include an xBrowse.prg PRG along with the project. If I don't put the problem disappears.

Code (fw): Select all Collapse
hbmk2: Dica: Adicionar opção 'hbxpp.hbc' faltando nas funções: Sleep()
hbmk2: Erro: Referenciado, faltando, mas funções desconhecida(s): TXBROWSE(),
       TXBRWCOLUMN(), SETKINETIC(), DRAWVERT(), DRAWHORZ(), XADS_KEYGOTO(),
       XBROWSABLEOBJ(), XBRADOSAVE(), EXTRACTLINE(), CONTRASTCOLOR(),
       XBRGETSELECTALL(), XBREDITMEMO(), XBROWSENEW(), TXBROWS(),
       XBRWSETDATASOURCE(), XBRJUSTIFY(), XBRNUMFORMAT(), SETXBROWSE(),
       DRAWPEN(), XBRSQLRDDMODE(), XBRHEXEDIT(), XBRIMAGEEDIT(), CALCLINEWH()
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Error compiling with Microsoft visual studio 2019
Posted: Sat Oct 02, 2021 07:09 AM

Giovanny,

Please post here your .hbp file, thanks

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 244
Joined: Mon Jun 05, 2006 09:39 PM
Re: Error compiling with Microsoft visual studio 2019
Posted: Mon Oct 04, 2021 07:02 AM
If I include any PRG that has functions in the libs the error appears.

This is my batch file.
Code (fw): Select all Collapse
@Echo off
@cls
@SET INCLUDE=P:\TOOLS\HarbourVC\include;P:\TOOLS\FWH\include;P:\Projects\_ALL\tAds\Include;P:\Projects\_ALL\Own\IncOwn;P:\TOOLS\PellesC\Include;P:\TOOLS\PellesC\Include\Win
@SET HB_INSTALL_PREFIX=P:\TOOLS\HarbourVC\
@SET HB_LANG=PT_BR
@SET HB_USER_RESFLAGS=/R /X /IP:\TOOLS\PellesC\Include /IP:\TOOLS\PellesC\Include\Win

@SET PATH=%PATH%;P:\TOOLS\HarbourVC\BIN
@SET INCLUDE=P:\TOOLS\PellesC\Include;P:\TOOLS\PellesC\Include\Win
@SET PATH=%PATH%;P:\TOOLS\PELLESC\BIN
@SET HB_COMPILER=pocc
@P:\TOOLS\HarbourVC\bin\HBMK2 EmolControlRes.hbp %* -comp=pocc

@call "P:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
@SET INCLUDE=%INCLUDE%;P:\TOOLS\HarbourVC\include;P:\TOOLS\FWH\include;P:\Projects\_ALL\tAds\Include;P:\Projects\_ALL\Own\IncOwn
@cvtres.exe /MACHINE:X86 /OUT:P:\TempComp\EmolCtrl\res\Resources.obj P:\TempComp\EmolCtrl\res\All_Sistemas_Imgs.RES P:\TempComp\EmolCtrl\res\All_Sistemas_Dlgs.res P:\TempComp\EmolCtrl\res\All_Sistemas_ImgsFlat.res P:\TempComp\EmolCtrl\res\All_Sistemas_ImgsMenu.res P:\TempComp\EmolCtrl\res\All_Sistemas_ImgsUi.res P:\TempComp\EmolCtrl\res\Dialogs.res P:\TempComp\EmolCtrl\res\Imagens.res P:\TempComp\EmolCtrl\res\MsgsOtimizados.res P:\TempComp\EmolCtrl\res\Privado.res P:\TempComp\EmolCtrl\res\EmolControl.res 
@SET HB_INSTALL_PREFIX=P:\TOOLS\HarbourVC\
@SET HB_USER_CFLAGS=-TP -W4 -c /GS- -D__NODEBUG__ -D__HBDYNLOAD__RDDADS__ 
@SET HB_COMPILER=msvc
@SET HB_USER_LIBPATHS=P:\TOOLS\HarbourVC\lib\win\msvc\;P:\TOOLS\FWH\lib\
@P:\TOOLS\HarbourVC\bin\HBMK2 EmolControlExeMS.hbp %* -comp=msvc -hblnk /NODEFAULTLIB:MSVCRT /NODEFAULTLIB:LIBC /FORCE:MULTIPLE


This is my HBP file
Code (fw): Select all Collapse
-inc
-m
-n
-w1
-gc0
-q
-gui
-d__SCANNER__
-oC:\SISTEMAS\EmolControl\EmolControl
-workdir=P:\TempComp\EmolCtrl
-run

########## INICIO
P:\Projects\EmolControl\EmolControl.prg
########## MODULOS
P:\Projects\EmolControl\EmolBasico\*.prg
P:\Projects\EmolControl\EmolRegCivil\*.prg
P:\Projects\EmolControl\EmolIss\*.prg
P:\Projects\EmolControl\Resolucao\*.prg
P:\Projects\EmolControl\Privado\*.prg
########## DATABASES
P:\Projects\EmolControl\DataBases\*.prg

P:\Projects\_ALL\Antigos\FUNCOES_DATA.PRG
P:\Projects\_ALL\Antigos\FUNCOES_GERAIS.prg
P:\Projects\_ALL\Antigos\FUNCOES_RECURSOS.prg
P:\Projects\_ALL\Funcoes\Colors_Buttom.prg
P:\Projects\_ALL\Funcoes\ColorSystem.prg
P:\Projects\_ALL\Funcoes\FuncoesFiles.prg
P:\Projects\_ALL\Funcoes\FuncoesTextos.prg
P:\Projects\_ALL\Funcoes\FuncoesMy.prg
P:\Projects\_ALL\Funcoes\MsgsOtimizados.prg
P:\Projects\_ALL\Funcoes\MycGetFile.prg
P:\Projects\_ALL\Funcoes\PastasDiretorios.prg
P:\Projects\_ALL\Funcoes\ProcedimentosExec.PRG
P:\Projects\_ALL\Funcoes\RibbonTheme.prg
P:\Projects\_ALL\Funcoes\SbBarInf.CH
P:\Projects\_ALL\Funcoes\SbBarInf.Prg
P:\Projects\_ALL\Funcoes\SerialHd.prg
P:\Projects\_ALL\Funcoes\MyIexplorer.prg

P:\Projects\_ALL\FwhAlt2018\xbrowse_2018_03.prg 
P:\Projects\_ALL\FwhAlt2018\buttonb_2018_02.prg
P:\Projects\_ALL\FwhAlt_2019\dialog_2019_06.prg
P:\Projects\_ALL\FwhAlt_2019\tget_2019_06.prg
 P:\Projects\_ALL\FwhAlt_2019\imgtxtio_2019_06.prg

P:\Projects\_ALL\FwhPer\*.prg
P:\Projects\_ALL\Headers\*.prg
P:\Projects\_ALL\tAds\Source\*.prg
P:\Projects\_ALL\tAds\SourceOld\*.prg

# Arquivo de Recursos em objeto
P:\TempComp\EmolCtrl\Res\Resources.obj


-lhbhpdf
-llibhpdf
hbwin.hbc 
hbct.hbc 
hbziparc.hbc 
hbmzip.hbc 
hbcomm.hbc 
#hbhpdf.hbc
xhb.hbc
hbwin.hbc
hbtip.hbc
rddads.hbc

-lkernel32  
-luser32    
-lgdi32     
   -lwinspool  
   -lcomctl32  
   -lcomdlg32  
   -ladvapi32   
-lshell32   
-lole32     
-loleaut32   
   -luuid      
   -lodbc32    
   -lodbccp32  
   -liphlpapi  
   -lmpr       
-lversion   
   -lwsock32   
   -lmsimg32   
-loledlg    
   -lpsapi     
-lgdiplus   
   -lwinmm     
   -lvfw32     
   -lruntimeobject 
   -lws2_32    
   -lshlwapi   
   -lstrmiids  

-lfiveh32
-lfivehc32


If I take the linker option /FORCE:MULTIPLE the executable is not generated.
The response output is here:
Code (fw): Select all Collapse
hbmk2: Processando opções do ambiente: -comp=poccts/EmolControl/_CompilerMS.bat -inc <
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.11.3
** Copyright (c) 2021 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x86'
Microsoft (R) Windows Resource To Object Converter Versão 14.29.30133.0
Copyright (C) Microsoft Corporation. Todos os direitos reservados.     

hbmk2: Processando opções do ambiente:
       -LP:\TOOLS\HarbourVC\lib\win\msvc\;P:\TOOLS\FWH\lib\ -comp=msvc
hbmk2[EmolControlExeMS]: Atenção: Ignorando explicitamente o diretório do      
                         núcleo da biblioteca especificado:
                         P:\TOOLS\HarbourVC\lib\win\msvc (na opção
                         '-LP:\TOOLS\HarbourVC\lib\win\msvc\;P:\TOOLS\FWH\lib\'
                         )
hbmk2[EmolControlExeMS]: Atenção: Opção de baixo nivel "low-level" perigosa e
                         não recomendada: '/FORCE:MULTIPLE'
hbmk2: Linkando... C:\SISTEMAS\EmolControl\EmolControl.exe
LINK : warning LNK4044: opç♠o n♠o reconhecida '/m'; ignorada
LINK : warning LNK4044: opç♠o n♠o reconhecida '/n'; ignorada
LINK : warning LNK4044: opç♠o n♠o reconhecida '/w1'; ignorada
LINK : warning LNK4044: opç♠o n♠o reconhecida '/gc0'; ignorada
LINK : warning LNK4044: opç♠o n♠o reconhecida '/q'; ignorada
LINK : warning LNK4044: opç♠o n♠o reconhecida '/d__SCANNER__'; ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_SETDEFAULTICONSIZE j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_READIMAGE j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_ISXHBCOM j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FILLRECTEX j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_DRAWIMAGE j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_SELECTCLIPRGN j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_SAYTEXT j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_SAYTEXTSPREAD j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_CALCTEXTWH j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_DRAWTEXTEXARRAY j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_SAYBARCODE j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_GETBMPWIDTH j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_GETBMPHEIGHT j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_WINDOWFROMDC j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_DRAWSHAPES j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_SEGOEMDL2 j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_USEGDI j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_CREATEBITMAP j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_WEBPAGECONTENTS j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_ISFILEIMAGETYPE j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_MEMORYBUFFERTYPE j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_BMPPLUS j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_BMPMINUS j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_MAKEYOURBITMAP j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_TEXTTOBITMAP j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_BARCODEBMP j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_SAVEIMAGE j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_SAVEHBITMAP j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_FW_TRANSFORMBITMAP j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_DRAWPROGRESSBAR j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_DRAWBMPARRAY j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_GRADIENTFILL j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_GRADIENTGDIP j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_PCHARTOPTR j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(IMGTXTIO.obj) : warning LNK4006: _HB_FUN_HICO2HBMP j  definido no imgtxtio_2019_06.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_TXBROWSE j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_TXBRWCOLUMN j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_SETKINETIC j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_DRAWVERT j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_DRAWHORZ j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XADS_KEYGOTO j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XBROWSABLEOBJ j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XBRADOSAVE j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_EXTRACTLINE j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_CONTRASTCOLOR j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XBRGETSELECTALL j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XBREDITMEMO j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XBROWSENEW j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_TXBROWS j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XBRWSETDATASOURCE j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XBRJUSTIFY j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XBRNUMFORMAT j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_SETXBROWSE j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_DRAWPEN j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XBRSQLRDDMODE j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XBRHEXEDIT j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_XBRIMAGEEDIT j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fiveh32.lib(XBROWSE.obj) : warning LNK4006: _HB_FUN_CALCLINEWH j  definido no xbrowse_2018_03.obj; segunda definiç♠o ignorada
fivehc32.lib(WINEXEC.obj) : warning LNK4006: _HB_FUN_SLEEP j  definido no hbxpp.lib(idlex.obj); segunda definiç♠o ignorada
C:\SISTEMAS\EmolControl\EmolControl.exe : warning LNK4088: imagem sendo gerada devido a opç♠o /FORCE; imagem n♠o pode ser executada

O terminal será reutilizado por tarefas, pressione qualquer tecla para fechá-lo.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Error compiling with Microsoft visual studio 2019
Posted: Mon Oct 04, 2021 04:49 PM

Don't include these OBJs:

imgtxtio_2019_06.obj
xbrowse_2018_03.obj

Because they have duplicated symbols with FWH

And these flags are not for MSVC so please remove them

LINK : warning LNK4044: opç♠o n♠o reconhecida '/m'; ignorada
LINK : warning LNK4044: opç♠o n♠o reconhecida '/n'; ignorada
LINK : warning LNK4044: opç♠o n♠o reconhecida '/w1'; ignorada
LINK : warning LNK4044: opç♠o n♠o reconhecida '/gc0'; ignorada
LINK : warning LNK4044: opç♠o n♠o reconhecida '/q'; ignorada
LINK : warning LNK4044: opç♠o n♠o reconhecida '/d__SCANNER__'; ignorada

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 244
Joined: Mon Jun 05, 2006 09:39 PM
Re: Error compiling with Microsoft visual studio 2019
Posted: Mon Oct 04, 2021 05:54 PM
Don't include these OBJs:

imgtxtio_2019_06.obj
xbrowse_2018_03.obj

Because they have duplicated symbols with FWH


I have some changes in the classes and functions of the 2 prgs.
Fix the issue by removing xBrowse.obj and ImgTxtIo.obj from the FIVEH32.LIB library.
Now it's OK
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Error compiling with Microsoft visual studio 2019
Posted: Tue Oct 05, 2021 06:58 AM

very good!

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 244
Joined: Mon Jun 05, 2006 09:39 PM
Re: Error compiling with Microsoft visual studio 2019
Posted: Tue Oct 05, 2021 07:12 PM
Code (fw): Select all Collapse
lib /REMOVE:objh32\XBROWSE.obj /REMOVE:objh32\imgtxtio.obj /out:FiveH32Cls.lib FiveH32.lib


Then just link with Lib FiveH32Cls.lib

Continue the discussion