Dllload ou hb_LibLoad ?
Moderador: Moderadores
Dllload ou hb_LibLoad ?
Bom dia,
Preciso trabalhar com uma dll e fazendo pesquisas encontrei essas duas funções para carregamento dll - Dllload()/DllUnload() e hb_LibLoad()/hb_LibFree().
A pergunta que me veio na hora foi: Qual usar? Qual a diferença entre as duas?
Preciso trabalhar com uma dll e fazendo pesquisas encontrei essas duas funções para carregamento dll - Dllload()/DllUnload() e hb_LibLoad()/hb_LibFree().
A pergunta que me veio na hora foi: Qual usar? Qual a diferença entre as duas?
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Dllload ou hb_LibLoad ?
Bom dia!
Janio, segundo dica de um colega daqui, Wapi_LoadLibrary(). Fuçando também achei Hb_LibLoad().
Saudações,
Mario.
Janio, segundo dica de um colega daqui, Wapi_LoadLibrary(). Fuçando também achei Hb_LibLoad().
Saudações,
Mario.
Dllload ou hb_LibLoad ?
usa o hb_dyncall() junto com hb_libload
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
Dllload ou hb_LibLoad ?
Eita ja apareceu outra? kkkusa o hb_dyncall() junto com hb_libload
Recapitulando:
hb_LibLoad() - Carrega a Dll
hb_dyncall() - chama os metodos da Dll
hb_LibFree() - Libera a Dll
Esse seria o mais recomendado ne
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Dllload ou hb_LibLoad ?
isso
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Dllload ou hb_LibLoad ?
Apenas pra "clarear".
hb_DynCall() é função interna do Harbour, não depende do sistema operacional.
Por isso é a mais indicada.
hb_DynCall() é função interna do Harbour, não depende do sistema operacional.
Por isso é a mais indicada.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Dllload ou hb_LibLoad ?
Com hb_DynCall() o sistema eh abortado sem qualquer aviso.hb_DynCall() é função interna do Harbour, não depende do sistema operacional.
cRet := hb_DynCall( nDllMfe, 32, "ConsultarStatusOperacionalMFE", nRandom, CodAtivacao )
Colocando DllCall() no lugar volta a funcionar sem erros
Windows 10 64 bits
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Dllload ou hb_LibLoad ?
Vê se melhora... usei com a DLL do RMChart.
hb_LibLoad() pra carregar a DLL, retorna um ponteiro
hb_LibFree() no final pra liberar a DLL
hb_DynCall() pra chamar rotinas, indicando a conversão padrão
Na conversão "automática" do Harbour, precisa um empurrãozinho pra double e decimal
Por coincidência, exatamente o comentei no problema que estava resolvendo do Flagship.... kkkkk
Código: Selecionar todos
#include "hbdyn.ch"
...
METHOD Init() INLINE ::nHandle := hb_libLoad( "RMChart.dll" )
METHOD Destroy() INLINE hb_libFree( ::nHandle )
METHOD AddBarSeries(a,b,c, ... ) INLINE ::CallDllStd( "RMC_ADDBARSERIES", a, b, ::ToDouble( c ), ... )
METHOD CallDllStd( cName, ... ) INLINE hb_DynCall( { cName, ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD ToDecimal( xValue ) INLINE xValue + 1.01 - 1.01
METHOD ToDouble( xValue )
hb_LibFree() no final pra liberar a DLL
hb_DynCall() pra chamar rotinas, indicando a conversão padrão
Na conversão "automática" do Harbour, precisa um empurrãozinho pra double e decimal
Por coincidência, exatamente o comentei no problema que estava resolvendo do Flagship.... kkkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Dllload ou hb_LibLoad ?
Blz, agora deu certo. Eh que essa função tem parametros diferentes da DllCall(). Com hb_DynCall() o primeiro parametro eh uma array.
Vlw
Vlw
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
-
Eduardo Pinho
- Colaborador

- Mensagens: 72
- Registrado em: 13 Jun 2014 19:30
- Localização: Niteroi
Dllload ou hb_LibLoad ?
Amigos,
Estou com uma duvida, e em vez de abrir outro topico acho que esse topico se encaixa no meu problema.
Uso Harbour 3.0 e quero usar uma DLL que um amigo gerou pra mim pelo Visual Fox.
Só que nao funciona de jeito nenhum...
Essa funciona bem:
Ret:= hb_DynCall( { "MessageBoxA", "user32.dll", HB_DYN_CALLCONV_STDCALL }, 0, "Isto é uma MessageBOX !", "Teste DLL", 0 )
Mas a que ele gerou no Fox nao funciona. Ja tentei carregando primeiro com hb_libload mas nao adiantou.
Ele fez uma pesquisa e disse que descobriu o problema. Disse que o Fox gera DLL orientada a objeto e que o Harbour nao consegue ler dessa forma.
Sabem, por acaso, se isso procede? Se é realmente isso, e se tem alguma forma de fazer ela funcionar?
Agradeço a ajuda. Abcs.
Estou com uma duvida, e em vez de abrir outro topico acho que esse topico se encaixa no meu problema.
Uso Harbour 3.0 e quero usar uma DLL que um amigo gerou pra mim pelo Visual Fox.
Só que nao funciona de jeito nenhum...
Essa funciona bem:
Ret:= hb_DynCall( { "MessageBoxA", "user32.dll", HB_DYN_CALLCONV_STDCALL }, 0, "Isto é uma MessageBOX !", "Teste DLL", 0 )
Mas a que ele gerou no Fox nao funciona. Ja tentei carregando primeiro com hb_libload mas nao adiantou.
Ele fez uma pesquisa e disse que descobriu o problema. Disse que o Fox gera DLL orientada a objeto e que o Harbour nao consegue ler dessa forma.
Sabem, por acaso, se isso procede? Se é realmente isso, e se tem alguma forma de fazer ela funcionar?
Agradeço a ajuda. Abcs.