Página 1 de 1

Procura-se uma LIB

Enviado: 15 Jan 2010 01:37
por ricardo-barros
Amigos,

Quando incluo a Dll.ch do Fivewin em um prg simples, algumas funções não são reconhecidas pelo Turbo Incremental Link 5.0 que retorna erros do tipo "unresolved exernal". São elas:

LOADLIBRARY()
GETRESOURCES()
SETHANDLECOUNT()
FREELIBRARY()
TSAY()
GETPROCADRESS()
CALLDLL()

Imagino que falta incluir alguma lib para que estas funções sejam reconhecidas.

Se for isso mesmo que LIB é esta?

Já tentei com o Harbour 1.0 e 2.0 usando Build.bat e Fivewin 6.12

Re: Procura-se uma LIB

Enviado: 15 Jan 2010 18:22
por rochinha
Amiguinho,

eu uso um .BAT para compilação, não uso nenhum MAKER, e seria necessário analisar o seu .BAT para saber se voce colocou as chamadas de .LIBs de acordo.

Não sei lhe dizer com certeza de onde são estas funções, sei que são realmente usadas para acesso a .DLLs.

Em se tratando de Fivewin, as bibliotecas FIVE.LIB e FIVEHC.LIB devem vir antes das bibliotecas do Harbour.

rem ***** necessario copiar antes para compilar legal *****
copy %bcdir%\lib\uuid.lib
echo %bcdir%\lib\c0w32.obj + > b32.bc

echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc

rem ***** se modificar alguma biblioteca original coloque sua chamada antes forçosamente *****
echo %fwdir%\Tree32.lib + >> b32.bc
echo %fwdir%\TWBrw32.lib + >> b32.bc
echo %fwdir%\BtnGet32.lib + >> b32.bc

rem ***** chame as bibliotecas Fivewin desta forma *****
echo %fwdir%\FiveH.lib + >> b32.bc
echo %fwdir%\FiveHC.lib + >> b32.bc

rem ***** chame as bibliotecas Harbour desta forma, a sequencia as vezes da bons resultados *****
echo %HBDIR%\lib\ct.lib + >> b32.bc
echo %HBDIR%\lib\uuid.lib + >> b32.bc
echo %HBDIR%\lib\debug.lib + >> b32.bc
echo %HBDIR%\lib\rtl.lib + >> b32.bc
echo %HBDIR%\lib\vm.lib + >> b32.bc
echo %HBDIR%\lib\gtwin.lib + >> b32.bc
echo %HBDIR%\lib\lang.lib + >> b32.bc
echo %HBDIR%\lib\macro.lib + >> b32.bc
echo %HBDIR%\lib\rdd.lib + >> b32.bc
echo %HBDIR%\lib\dbfcdx.lib + >> b32.bc
echo %HBDIR%\lib\dbfntx.lib + >> b32.bc
echo %HBDIR%\lib\dbfdbt.lib + >> b32.bc
echo %HBDIR%\lib\dbffpt.lib + >> b32.bc
echo %HBDIR%\lib\common.lib + >> b32.bc
echo %HBDIR%\lib\libmisc.lib + >> b32.bc
echo %HBDIR%\lib\codepage.lib + >> b32.bc
echo %HBDIR%\lib\pp.lib + >> b32.bc
echo %HBDIR%\lib\hbsix.lib + >> b32.bc
echo %HBDIR%\lib\libct.lib + >> b32.bc
echo %HBDIR%\lib\libnf.lib + >> b32.bc
echo %HBDIR%\lib\socket32.lib + >> b32.bc
echo %HBDIR%\lib\psdk\iphlpapi.lib + >> b32.bc
echo %HBDIR%\lib\cw32.lib + >> b32.bc

Algumas das bibliotecas acima podem não estar na pasta LIB do Harbour, ja que as pastas de bibliotecas para uma boa compilação estão em HARBOUR\LIB, FIVEWIN\LIB e BCC55\LIB.

Portanto inclua mais algumas bibliotecas ao seu .BAT

Re: Procura-se uma LIB

Enviado: 18 Jan 2010 22:21
por ricardo-barros
Rochinha,

Obrigado pela dica. Melhorou pois aqueles unresolved external não aparecem mais. Agora aparecem estes:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
'_hb_vmProcessSymbolsEx' referenced from C:\HARBOUR\FWH\LIB\FIVEH.LIB|ERRSYSW
'_HB_FUN_HB_DBG_VMSTKLCOUNT' referenced from C:\HARBOUR\FWH\LIB\FIVEH.LIB|HARBOUR
'_HB_FUN_HB_DBG_VMPARLLIST' referenced from C:\HARBOUR\FWH\LIB\FIVEH.LIB|HARBOUR
'_HB_FUN_HB_DBG_VMVARLGET' referenced from C:\HARBOUR\FWH\LIB\FIVEH.LIB|HARBOUR
'_HB_FUN_HB_DBG_VMVARSLEN' referenced from C:\HARBOUR\FWH\LIB\FIVEH.LIB|HARBOUR

Eis o build.bat que estou usando:
If Not Exist "uuid.lib" COPY %bcdir%\LIB\UUID.LIB /Y
echo %bcdir%\lib\c0w32.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc
echo \harbour\fwh\lib\FiveH.lib + >> b32.bc
echo \harbour\fwh\lib\FiveHC.lib + >> b32.bc
REM echo %hdir%\lib\ct.lib + >> b32.bc Não tenho esta lib
echo %hdir%\lib\uuid.lib + >> b32.bc
echo %hdir%\lib\hbdebug.lib + >> b32.bc
echo %hdir%\lib\hbrtl.lib + >> b32.bc
echo %hdir%\lib\hbvm.lib + >> b32.bc
echo %hdir%\lib\gtwin.lib + >> b32.bc
echo %hdir%\lib\hblang.lib + >> b32.bc
echo %hdir%\lib\hbmacro.lib + >> b32.bc
echo %hdir%\lib\hbrdd.lib + >> b32.bc
echo %hdir%\lib\rddcdx.lib + >> b32.bc
echo %hdir%\lib\rddntx.lib + >> b32.bc
echo %hdir%\lib\rddfpt.lib + >> b32.bc
echo %hdir%\lib\hbgt.lib + >> b32.bc
echo %hdir%\lib\hbcommon.lib + >> b32.bc
REM echo %hdir%\lib\libmisc.lib + >> b32.bc Não tenho esta lib
echo %hdir%\lib\hbpp.lib + >> b32.bc
echo %hdir%\lib\hbcpage.lib + >> b32.bc
echo %hdir%\lib\hbsix.lib + >> b32.bc
echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\import32.lib, >> b32.bc

ECHO Linking...
%bcdir%\bin\ilink32 -Gn -Tpe -s @b32.bc

Re: Procura-se uma LIB

Enviado: 19 Jan 2010 03:09
por rochinha
Amiguinho,

Estes erro irão aparecer se voce usar uma versão de Harbour mais atual e diferente da que esta no pacote.

O Fivewin que voce tem geralmente vem com uma versão de Harbour/xHarbour pré-preparada para trabalhar afinada com ela.

Se voce estiver usando as versões mais recentes do H/xH(arbour) deverá compilar o código fonte do Fivewin, ou seja, todos os .PRG´s e C´s contidos na pasta SOURCE. PRG´s com sua versão H/xH(arbour) e C´s com seu compilador C, borland, Pelles ou outro.

Re: Procura-se uma LIB

Enviado: 20 Jan 2010 21:25
por ricardo-barros
Estou usando o Harbour fornecido junto com o Fivewin.

Após sua valiosa sugestão (a sequência das libs na linkedição) o problema ficou bem menor. Aí eu postei as novas mensagens de erro no forum do Linares e ele sugeriu acrescentar isto:

function HB_DBG_VMSTKLCOUNT( x ) ; return __DBGVMSTKLCOUNT( x )
function HB_DBG_VMPARLLIST( x ) ; return __DBGVMPARLLIST( x )
function HB_DBG_VMVARLGET( x, y ) ; return __DBGVMVARLGET( x, y )
function HB_DBG_VMVARSLEN() ; return __DBGVMVARSLEN()

Finalmente consegui gerar o exe mas, para minha desilusão, ao enviar o comando de Leitura X, surge um Msgbox com outro erro e não diz em qual liha do programa o problema acontece. Depois posto o erro aqui.

Re: Procura-se uma LIB

Enviado: 22 Jan 2010 22:09
por sygecom
Ricardo,
De uma procurada aqui no forum pelo projeto ACBR, acredito que seja uma boa saida para quem mexe com esses ECF, TEF, PAF, PCdoB, PT e etc...