Usar DLL no Harbour
Moderador: Moderadores
-
Eduardo Pinho
- Colaborador

- Mensagens: 72
- Registrado em: 13 Jun 2014 19:30
- Localização: Niteroi
Usar DLL no Harbour
Amigos,
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.
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.
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Usar DLL no Harbour
Bom dia.
Não sei se ajuda, mas outro dia precisei usar uma DLL e consegui baseado num post de um colega.
No Main:
A função:
Essa função "FastQRCode" está na DLL.
Sds,
Mario.
Não sei se ajuda, mas outro dia precisei usar uma DLL e consegui baseado num post de um colega.
No Main:
Código: Selecionar todos
DECLARE DLL_TYPE_HBITMAP FastQRCode (DLL_TYPE_LPCSTR file, DLL_TYPE_LPCSTR path) IN QrCodeLib.dll
Código: Selecionar todos
FUNCTION Gera_FastQRCode(nArq, nTxt)
cTexto := nTxt
cFile := _xPht + nArq + ".jpg"
FastQRCode(cTexto, cFile)
//msginfo('gerou no fast a imagem '+cfile)
RETURN NIL
Sds,
Mario.
Usar DLL no Harbour
O que pode estar acontecendo tbm eh que algumas dll's retornam um ponteiro para um endereço de memória, e precisamos de uma função pra traduzir esse negocio, tipo:
Código: Selecionar todos
#pragma BEGINDUMP
#include <windows.h>
#include "hbapi.h"
#include "hbapierr.h"
HB_FUNC( RETORNATAMANHOBUFFER )
{
hb_retni( strlen( (const char *) hb_parni(1) ) );
}
#pragma ENDDUMP
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
Function Dll_ConsultarMFE
Local nRandom := HB_RANDOMINT(1,999999)
Local cRet
If nDllMfe != Nil
cRet := Hb_dynCall( { "ConsultarSAT", nDllMfe, HB_DYN_CALLCONV_STDCALL}, nRandom )
cRet := HB_Pointer2String( cRet, RetornaTamanhoBuffer(cRet) )
If Empty(cRet)
cRet := "ERRO ConsultarMFE: SEM RESPOSTA DO MFE|"
Endif
Else
cRet := "ERRO ConsultarSAT: MFe.Dll nao carregada|"
Endif
Return cRet
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
Usar DLL no Harbour
DLL específica de Visual Fox só funciona no Visual Fox
DLL específica de Harbour só funciona no Harbour
DLL que contém componente instalável, só funciona instalada
etc.
DLL específica de Harbour só funciona no Harbour
DLL que contém componente instalável, só funciona instalada
etc.
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/
-
Eduardo Pinho
- Colaborador

- Mensagens: 72
- Registrado em: 13 Jun 2014 19:30
- Localização: Niteroi
Usar DLL no Harbour
Obrigado a todos pelas dicas. Vou analisar uma solucao depois.. Valeu mesmo!!!!!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usar DLL no Harbour
Ué... se precisa ponteiro, é passar ponteiro.janio escreveu:O que pode estar acontecendo tbm eh que algumas dll's retornam um ponteiro para um endereço de memória, e precisamos de uma função pra traduzir esse negocio, tipo:
O que normalmente precisa é espaço suficiente na variável.
x:= Space(50000)
FuncaoDll( @x )
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usar DLL no Harbour
Outra opção: usar diretamente o Visual Foxpro, e nem precisar criar DLL
Código: Selecionar todos
vfp = win_oleCreateObject("VisualFoxPro.Application")
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/
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Usar DLL no Harbour
Ola Janio, conseguiu usar a DLL MFE.DLL da sefaz do cerá?
Estou usando hblibload do harbour e nao carrega a dll.
Estou usando hblibload do harbour e nao carrega a dll.
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Usar DLL no Harbour
Poxa, consegui, eu setei o path para o diretório da DLL e foi. Isso se deve a ela usar outras DLLs no diretório.
Usar DLL no Harbour
Exato. Sabemos de alguns casos que so funciona se setar o path onde a dll está (senão da erro de dependência de outras dll's).Poxa, consegui, eu setei o path para o diretório da DLL e foi. Isso se deve a ela usar outras DLLs no diretório.
No meu caso não precisou disso. Foi so carregar a dll e pronto
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
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Usar DLL no Harbour
Janio,
E conseguiu homologar?
Compramos DIMEP, mas os cara da DIMEP mesmo nao sabem dar suporte, precisamos fazer homologação ainda la, teve algum entrave?
Vi comentários sobre a dll, que tem as mesmas chamadas do SAT, ai fica transparente, porém também vi gente reclamando, que algumas operações não funcionam, como cancelamento, o que sentiu a respeito da DLL? ta fluindo?
E conseguiu homologar?
Compramos DIMEP, mas os cara da DIMEP mesmo nao sabem dar suporte, precisamos fazer homologação ainda la, teve algum entrave?
Vi comentários sobre a dll, que tem as mesmas chamadas do SAT, ai fica transparente, porém também vi gente reclamando, que algumas operações não funcionam, como cancelamento, o que sentiu a respeito da DLL? ta fluindo?
Usar DLL no Harbour
Homologamos no início, beeeeem no início. Com relação ao Cfe e a dll ta tudo funcionando e muito bem. O que não funciona é NFCe (até onde testei não conseguia cancelar uma NFCe)
Outro detalhe eh que pra NFCe obrigatoriamente tem que usar o Integrador. Eh um balaio de gato do cao. So quem vem acompanhando desde o início pra entender
Outro detalhe eh que pra NFCe obrigatoriamente tem que usar o Integrador. Eh um balaio de gato do cao. So quem vem acompanhando desde o início pra entender
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
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Usar DLL no Harbour
Faço ideia, nosso PDV está homologado e rodando em todos os estados, com NFE, NFCE, SAT e agora mais essa inhaca, fora homologação de PAF-ECF que vamos ter que fazer agora só por causa de SC, é fogo esse brasil, tinhamos que fazer um abaixo assinado para acabar com esse PAF-ECF que é só para dar dinheiro para escolas de ensino que sempre tem um deputado ou senador por trás.
Veja os arquivos que o PDF tem que gerar, tem 8 anos que fazemos a homologação e os arquivos até hoje não tem validador, cada homologador valida como bem entende, tudo no olho e comem todo ano 2 a 3 dias com isso, todo ano temos que adequar ao que o homologador pensa.
Veja os arquivos que o PDF tem que gerar, tem 8 anos que fazemos a homologação e os arquivos até hoje não tem validador, cada homologador valida como bem entende, tudo no olho e comem todo ano 2 a 3 dias com isso, todo ano temos que adequar ao que o homologador pensa.
Usar DLL no Harbour
Ahhh lembrando que o CFe ta funcionando bem agora, ultimamente. Mas foram quase 2 anos de sofrimento graaaannnde. So passou a funcionar quando tiraram o Integrador do meio e fizeram ajustes no Driver Mfe Sefaz. Agora vc consegue conversar diretamente com a dll.Homologamos no início, beeeeem no início. Com relação ao Cfe e a dll ta tudo funcionando e muito bem. O que não funciona é NFCe (até onde testei não conseguia cancelar uma NFCe)
Agora está igual ao SAT de São Paulo. Vc conversa com a dll... as chamadas a dll são exatamentes as mesmas do SAT. A única diferença que ainda há em relação ao SAT/São Paulo eh que aqui ainda existe a necessidade de instalar o Driver MFe da Sefaz.
Pra resumir ficou assim agora, vc tem 2 maneiras de comunicação com MFe e aí vc escolhe qual quer usar:
1- Maneira antiga pelo Integrador (vc gera um xml na pasta input do Integrador e espera a resposta na pasta Output).
2- Não usa o Integrador e conversa diretamente com a dll, exatamente como São Paulo (esse modo ta funcionando bem)
Quando homologamos so existia a opção com Integrador. Eu não sei se atualmente pode homologar com a opção sem integrador. Lembrando que que a opção por dll eh apenas para comunicaçao com o Mfe. Para o métodos de pagamento ainda eh obrigatorio o Integrador. Como disse... um balaio de gato que so quem vem acompanhando desde o início pra entender
Janio
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
