Jump to content
Fivewin Brasil

Esta é para o Gilmer (FWH)


qiinfo

Recommended Posts

Boa noite Gilmer,

Estou tendo certas dificuldades para começar a caminhar no Fwh (xharbour). Estou tentando mudar tudo que eu tinha antes em 16 bits para 32 bits. Estou conseguindo com certo esforço e trabalho romper as barreiras que aparecem, só que tem coisas que estao fora do meu alcance e conhecimento.

Veja o problema que estou tentando solucionar e não consigo:

Tenho um aplicativo que roda com 1 .exe (884.656kB) + 1 dll (20.545 Kb), tudo compilado com blinker. o arquivo .dll é gerado com a clausula NODELETE pois certas funcoes estao dentro do .EXE e já ficam na memoria para a dll.

Preciso gerar esta mesma dll para 32 bits com o ilink32 sem informar as libs do xharbour ,porque se o fizer a dll ficara com mais ou menos 1Mb, sendo que o .exe que já esta na memoria já carregou o xharbour e suas libs.

LINHA DE COMANDO QUE USEI

ilink32 -Gn -M -m -aa -Tpd -s -c -t -x @dll1.bc

MEU FLUXO DE COMPILACAO (DLL1.BC)

=======================

c0w32.obj +

dll.obj, +

dll.dll, +

dll.map, +

\fwh\lib\FiveHX.lib \fwh\lib\FiveHC.lib +

harbour.lib +

c:\bcc55\lib\cw32.lib +

c:\bcc55\lib\import32.lib +

c:\bcc55\lib\psdk\odbc32.lib,

ERROS GERADOS QUE NAO PERMITEM GERAR O ARQUIVO .DLL

===================================================

Turbo Incremental Link 5.00 Copyright © 1997, 2000 Borland

Error: Unresolved external '_hb_stack' referenced from C:\FWH\LIB\FIVEHC.LIB|FFWNDRUN

Error: Unresolved external 'WinMain' referenced from C:\BCC55\LIB\C0W32.OBJ

Error: Unresolved external '_hb_set' referenced from C:\FWH\LIB\FIVEHC.LIB|MSGS

Error: Unresolved external '_hb_symEval' referenced from C:\FWH\LIB\FIVEHC.LIB|CTRLDRAW

O ilink32 tem a diretiva para gerar a .dll mesmo com estes erros ?

Qual seria a linha de compilacao ?

Obrigado e no aguardo,

Rossine.

Link to comment
Share on other sites

Olá,

Apesar de não ser o Gilmer e nem garoto propaganda do xHarbour comercial, eu uso o xBuild (parte do produto) para gerar o executável e também, quando necessário, gerar DLLs. Nele basta marcar que é para gerar dll e incluir os prgs e mandar gerar. Sem muito parâmetro, sem dificuldade alguma. Isto tem um custo, claro, mas achei que valeu a pena (+ou- R$400,00 em www.xharbour.com.br). Tem também o hbmake (gratuito), mas não sei como utilizá-lo. Através dele também facilita esta tarefa.

[]s,

Evandro G. de Paula

Curvelo - MG

evandro@skillnet.com.br (Escr. - na Cidade)

imortal@skillnet.com.br (Res. - na Roça)

Link to comment
Share on other sites

Olá,

Este erro você esta tendo ao tentar gerar a DLL ?

citação:

Boa noite Gilmer,

Estou tendo certas dificuldades para começar a caminhar no Fwh (xharbour). Estou tentando mudar tudo que eu tinha antes em 16 bits para 32 bits. Estou conseguindo com certo esforço e trabalho romper as barreiras que aparecem, só que tem coisas que estao fora do meu alcance e conhecimento.

Veja o problema que estou tentando solucionar e não consigo:

Tenho um aplicativo que roda com 1 .exe (884.656kB) + 1 dll (20.545 Kb), tudo compilado com blinker. o arquivo .dll é gerado com a clausula NODELETE pois certas funcoes estao dentro do .EXE e já ficam na memoria para a dll.

Preciso gerar esta mesma dll para 32 bits com o ilink32 sem informar as libs do xharbour ,porque se o fizer a dll ficara com mais ou menos 1Mb, sendo que o .exe que já esta na memoria já carregou o xharbour e suas libs.

LINHA DE COMANDO QUE USEI

ilink32 -Gn -M -m -aa -Tpd -s -c -t -x @dll1.bc

MEU FLUXO DE COMPILACAO (DLL1.BC)

=======================

c0w32.obj +

dll.obj, +

dll.dll, +

dll.map, +

\fwh\lib\FiveHX.lib \fwh\lib\FiveHC.lib +

harbour.lib +

c:\bcc55\lib\cw32.lib +

c:\bcc55\lib\import32.lib +

c:\bcc55\lib\psdk\odbc32.lib,

ERROS GERADOS QUE NAO PERMITEM GERAR O ARQUIVO .DLL

===================================================

Turbo Incremental Link 5.00 Copyright © 1997, 2000 Borland

Error: Unresolved external '_hb_stack' referenced from C:\FWH\LIB\FIVEHC.LIB|FFWNDRUN

Error: Unresolved external 'WinMain' referenced from C:\BCC55\LIB\C0W32.OBJ

Error: Unresolved external '_hb_set' referenced from C:\FWH\LIB\FIVEHC.LIB|MSGS

Error: Unresolved external '_hb_symEval' referenced from C:\FWH\LIB\FIVEHC.LIB|CTRLDRAW

O ilink32 tem a diretiva para gerar a .dll mesmo com estes erros ?

Qual seria a linha de compilacao ?

Obrigado e no aguardo,

Rossine.


id=quote>id=quote>
Link to comment
Share on other sites

Olá Gilmer,

Sim, é quando rodo o ilink32. Este erro acontece porque, eu nao referencio as lib´s do xharbour para diminuir o tamanho da dll. ( o XHARBOUR já esta memoria dentro do .exe por isso que eu nao preciso dele da dll.

O fluxo certo para gerar um .EXE seria:

c0w32.obj +

dll.obj, +

dll.dll, +

dll.map, +

\fwh\lib\FiveHX.lib \fwh\lib\FiveHC.lib +

c:\xharbour\lib\rtl.lib +

c:\xharbour\lib\vm.lib +

c:\xharbour\lib\gtwin.lib +

c:\xharbour\lib\lang.lib +

c:\xharbour\lib\macro.lib +

c:\xharbour\lib\rdd.lib +

c:\xharbour\lib\dbfntx.lib +

c:\xharbour\lib\dbfdbt.lib +

c:\xharbour\lib\dbfcdx.lib +

c:\xharbour\lib\dbffpt.lib +

c:\xharbour\lib\debug.lib +

c:\xharbour\lib\common.lib +

c:\xharbour\lib\pp.lib +

c:\bcc55\lib\cw32.lib +

c:\bcc55\lib\import32.lib +

c:\bcc55\lib\psdk\odbc32.lib,

e o fluxo certo para gerar uma .DLL seria:

c0w32.obj +

dll.obj, +

dll.dll, +

dll.map, +

c:\bcc55\lib\cw32.lib +

c:\bcc55\lib\import32.lib +

c:\bcc55\lib\psdk\odbc32.lib,

OK ?

Abraços,

Rossine.

Link to comment
Share on other sites

Olá,

-----------------------------

Apesar de não ser o Gilmer e nem garoto propaganda do xHarbour comercial, eu uso o xBuild (parte do produto) para gerar o executável e também, quando necessário, gerar DLLs. Nele basta marcar que é para gerar dll e incluir os prgs e mandar gerar. Sem muito parâmetro, sem dificuldade alguma. Isto tem um custo, claro, mas achei que valeu a pena (+ou- R$400,00 em www.xharbour.com.br). Tem também o hbmake (gratuito), mas não sei como utilizá-lo. Através dele também facilita esta tarefa.

--------------------------

Evandro, tentei utilizar o hbmake, mas nao soube. Com este xbuild eu consigo:

1) Gerar dlls de 4KB por exemplo ?

2) Acessar dentro da dll as variaveis que estao na memoria criadas anteriormente com o .exe ?

3) usar dll´s estaticas e dinamicas ?

4) PASSAR E RECEBER PARAMETROS DO .EXE PARA A DLL ?

Veja um exemplo funcional:

ARQ_EXE.PRG

===========

#include "fivewin.ch"

function main()

public VAR1 = "TESTE"

? "ESTOU NO .EXE"

? TESTE_DLL( "OLA MUNDO" )

ARQ_DLL.DLL

===========

#include "fivewin.ch"

function TESTE_DLL( TEXTO )

? TEXTO

return .F.

Abraços,

Rossine.

Link to comment
Share on other sites

Olá,

Gerar a dll, gerei rapidamente (48K). Agora o acesso a ela, e as outras questões, com não uso dlls, não sei bem como fazer isto. Estou um pouco arrochado hoje e não pude me aprofundar no caso. Enviei a dll gerada para seu e-mail. Daí você pode testar.

[]s,

Evandro G. de Paula

Curvelo - MG

evandro@skillnet.com.br (Escr. - na Cidade)

imortal@skillnet.com.br (Res. - na Roça)

Link to comment
Share on other sites

Boa tarde Evandro,

Para chamar a funcao de dentro do meu .exe devo chamar:

? TESTE_DLL( "OLA MUNDO" )

Onde consigo informaçoes do xbuild.

Gostaria de trocar algumas ideias com voce sobre ele.

Poderia me enviar um email com seu telefone para conversarmos?

Obrigado,

Rossine.

email: qiinfo@ig.com.br

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...