Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Moderador: Moderadores
-
ricardo-barros
- Usuário Nível 3

- Mensagens: 104
- Registrado em: 29 Out 2009 20:12
- Localização: Fortaleza
Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Olá colegas.
Minha migração só poderá acontecer se eu souber como imprimir cupons fiscais Daruma. Alguém poderia dar um exemplo de um prg que imprima uma leitura X usando a DLL Daruma32?
O exemplo anexo se propõe a isso e foi tirado do próprio site da Daruma mas dá erro de sintaxe ao ser compilado.
Agradeço por qualquer ajuda.
Minha migração só poderá acontecer se eu souber como imprimir cupons fiscais Daruma. Alguém poderia dar um exemplo de um prg que imprima uma leitura X usando a DLL Daruma32?
O exemplo anexo se propõe a isso e foi tirado do próprio site da Daruma mas dá erro de sintaxe ao ser compilado.
Agradeço por qualquer ajuda.
- Anexos
-
cupom4.prg- (1.92 KiB) Baixado 179 vezes
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Os exemplos da Daruma em xHarbour são feitos com Fivewin. Talvez seja este o entrave. Mas para trabalhar com DLL´s no seu caso seria o seguinte:
Qualquer coisa, prende o grito.
Isso é o básico do básico. Depois precisa interpretar os retornos e coisas do tipo. E talvez precise editar algumas chaves no registro do Windows, mas baixe o Help da Daruma.dll no site da Daruma, que é bem fácil de entender.Para declarar a DLL:
h1:= LoadLibrary("Daruma32.dll")
Para Leitura X
ret:= dllcall(h1,32,"Daruma_FI_LeituraX")
Qualquer coisa, prende o grito.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
-
ricardo-barros
- Usuário Nível 3

- Mensagens: 104
- Registrado em: 29 Out 2009 20:12
- Localização: Fortaleza
Re: Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Compilou legal mas deu erro ao linkar. Acho que falta alguma lib no Build.bat
Proc Main()
h1:= LoadLibrary("Daruma32.dll")
ret:= dllcall(h1,32,"Daruma_FI_LeituraX")
Return
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_LOADLIBRARY' referenced from C:\SCE\DARUMA\X.OBJ
Error: Unresolved external '_HB_FUN_DLLCALL' referenced from C:\SCE\DARUMA\X.OBJ
Eu compilei assim:
Build X
Proc Main()
h1:= LoadLibrary("Daruma32.dll")
ret:= dllcall(h1,32,"Daruma_FI_LeituraX")
Return
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_LOADLIBRARY' referenced from C:\SCE\DARUMA\X.OBJ
Error: Unresolved external '_HB_FUN_DLLCALL' referenced from C:\SCE\DARUMA\X.OBJ
Eu compilei assim:
Build X
- Anexos
-
Build.txt- Tive que renomear a extensão senão o forum não aceita
- (1.78 KiB) Baixado 100 vezes
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Uai !
É xHarbour ? Qual versão ?
Eu compilo e linko usando o Hbmake e a única coisa que precisaria mencionar para gerar esta simples rotina, é o próprio arquivo.prg.
É xHarbour ? Qual versão ?
Eu compilo e linko usando o Hbmake e a única coisa que precisaria mencionar para gerar esta simples rotina, é o próprio arquivo.prg.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
-
ricardo-barros
- Usuário Nível 3

- Mensagens: 104
- Registrado em: 29 Out 2009 20:12
- Localização: Fortaleza
Re: Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Olá alaminojunior
Obrigado pelo interesse em me ajudar. Vejo que a solução está próxima.
Eu pretendo usar o Fivewin logo que aprender o suficiente. Por enquanto uso o Harbour 1.0 e já consegui migrar meu sistema quase todo, só faltam as rotinas de cupom fiscal. Meu interesse em 32 bits é justamente acessar a DLL Daruma sem o uso de programas externos (como o Observer 2) que deixam a impressão lenta.
Tentei compilar sua dica com Hbmake e ele gerou o exe sem o erro citado. Mas ao executá-lo ele dá um erro de Procedure Main não encontrada:
Unrecoverable error 9012: Can´t locate the start procedure: ´Main´
Mas você pode ver que ela está lá.
A propósito, o meu hbmake não compila nem o conhecido e básico Hello World.
Obrigado pelo interesse em me ajudar. Vejo que a solução está próxima.
Eu pretendo usar o Fivewin logo que aprender o suficiente. Por enquanto uso o Harbour 1.0 e já consegui migrar meu sistema quase todo, só faltam as rotinas de cupom fiscal. Meu interesse em 32 bits é justamente acessar a DLL Daruma sem o uso de programas externos (como o Observer 2) que deixam a impressão lenta.
Tentei compilar sua dica com Hbmake e ele gerou o exe sem o erro citado. Mas ao executá-lo ele dá um erro de Procedure Main não encontrada:
Unrecoverable error 9012: Can´t locate the start procedure: ´Main´
Mas você pode ver que ela está lá.
A propósito, o meu hbmake não compila nem o conhecido e básico Hello World.
-
ricardo-barros
- Usuário Nível 3

- Mensagens: 104
- Registrado em: 29 Out 2009 20:12
- Localização: Fortaleza
Re: Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Vejam só que coisa estranha:
Apesar de não conseguir compilar o Hello World com Hbmake, o meu sistema com 250 prgs compila numa boa.
Essa eu não entendi.
Aí eu acrescentei as linhas:
h1:= LoadLibrary("Daruma32.dll")
ret:= dllcall(h1,32,"Daruma_FI_LeituraX")
Agora o Hbmake dá o mesmo erro:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_LOADLIBRARY' referenced from C:\SCE\DARUMA\X.OBJ
Error: Unresolved external '_HB_FUN_DLLCALL' referenced from C:\SCE\DARUMA\X.OBJ
Isto aumenta a suspeita de que falta alguma Lib na pasta do Harbour.
Apesar de não conseguir compilar o Hello World com Hbmake, o meu sistema com 250 prgs compila numa boa.
Essa eu não entendi.
Aí eu acrescentei as linhas:
h1:= LoadLibrary("Daruma32.dll")
ret:= dllcall(h1,32,"Daruma_FI_LeituraX")
Agora o Hbmake dá o mesmo erro:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_LOADLIBRARY' referenced from C:\SCE\DARUMA\X.OBJ
Error: Unresolved external '_HB_FUN_DLLCALL' referenced from C:\SCE\DARUMA\X.OBJ
Isto aumenta a suspeita de que falta alguma Lib na pasta do Harbour.
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Apesar de as vezes ocorrerem alguns enganos, vou assumir que você está usando exatamente o Harbour e não o xHarbour, que a esta altura do campeonato possuem suas grandes particularidades. Sendo assim, parece que está faltando mencionar a lib xhb.lib que contém entre outras, as funções DLLCALL e LOADLIBRARY.ricardo-barros escreveu:Por enquanto uso o Harbour 1.0
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
-
ricardo-barros
- Usuário Nível 3

- Mensagens: 104
- Registrado em: 29 Out 2009 20:12
- Localização: Fortaleza
Re: Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Rapaz,
Tá perto. A lib xhb existe na pasta do Harbour mas do não contava no script de compilação que eu tinha criado com hbmake cliente.bc -ex. Aí eu a inclui no script.
A surpresa é que mesmo assim as funções de acesso à DLL continuam dando erro de Unresolved external.
A xhb é mesmo a lib responsável por estas funções?
Obrigado mais uma vez.
Tá perto. A lib xhb existe na pasta do Harbour mas do não contava no script de compilação que eu tinha criado com hbmake cliente.bc -ex. Aí eu a inclui no script.
A surpresa é que mesmo assim as funções de acesso à DLL continuam dando erro de Unresolved external.
A xhb é mesmo a lib responsável por estas funções?
Obrigado mais uma vez.
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Pelo menos é o que consta no Help.ricardo-barros escreveu:A xhb é mesmo a lib responsável por estas funções?
Um detalhe é: se você está usando Harbour, o make deveria ser o Hbmk2 e não o Hbmake.
Vamos ver se algum colega que também use o Harbour, nos dá uma luz.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
-
ricardo-barros
- Usuário Nível 3

- Mensagens: 104
- Registrado em: 29 Out 2009 20:12
- Localização: Fortaleza
Re: Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Ora vejam!
Com o Hbmk2 o Hello World finalmente funcionou!
Mas o Hbmake serviu muito bem para compilar o meu sistema. E ele tem muitos prg.
A questão agora é como compilar mais de um prg no mesmo sistema pois o hbmk2 não requer um arquivo de extensão BC. Além disso como incluir a xhb.lib para testar com hbmk2. Ou será que no Harbour a lib é outra?
Só lembrando, as funções que eu quero usar são:
h1:= LoadLibrary("Daruma32.dll")
ret:= dllcall(h1,32,"Daruma_FI_LeituraX")
Obrigado, Alaminojunior. E também a todos que puderem ajudar.
Com o Hbmk2 o Hello World finalmente funcionou!
Mas o Hbmake serviu muito bem para compilar o meu sistema. E ele tem muitos prg.
A questão agora é como compilar mais de um prg no mesmo sistema pois o hbmk2 não requer um arquivo de extensão BC. Além disso como incluir a xhb.lib para testar com hbmk2. Ou será que no Harbour a lib é outra?
Só lembrando, as funções que eu quero usar são:
h1:= LoadLibrary("Daruma32.dll")
ret:= dllcall(h1,32,"Daruma_FI_LeituraX")
Obrigado, Alaminojunior. E também a todos que puderem ajudar.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Ricardo,
Essa versão do Harbour está meia desatualizada, procure atualizar para a versão 2.0.
Essa versão do Harbour está meia desatualizada, procure atualizar para a versão 2.0.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
ricardo-barros
- Usuário Nível 3

- Mensagens: 104
- Registrado em: 29 Out 2009 20:12
- Localização: Fortaleza
Re: Exemplo que imprima leitura X no [x]Harbour c/ DLL Daruma
Ok. Resolvi Instalar o Harbour 2.0 que peguei hoje no sourceforge:
http://sourceforge.net/projects/harbour ... z/download
Function Main()
h1:= LoadLibrary("Daruma32.dll")
ret:= dllcall(h1,32,"Daruma_FI_LeituraX")
Return
Estou usando outro computador e nenhuma variável de ambiente foi configurada ainda.
Apenas descompactei tudo na pasta HB20 e compilei o programa acima desta maneira:
\HB20\BIN\HBMK2 X.PRG
Dá os seguintes erros:
undefined reference to HB_FUN_LOADLIBRARY
undefined reference to HB_FUN_DLLCALL
O que está faltando?
http://sourceforge.net/projects/harbour ... z/download
Function Main()
h1:= LoadLibrary("Daruma32.dll")
ret:= dllcall(h1,32,"Daruma_FI_LeituraX")
Return
Estou usando outro computador e nenhuma variável de ambiente foi configurada ainda.
Apenas descompactei tudo na pasta HB20 e compilei o programa acima desta maneira:
\HB20\BIN\HBMK2 X.PRG
Dá os seguintes erros:
undefined reference to HB_FUN_LOADLIBRARY
undefined reference to HB_FUN_DLLCALL
O que está faltando?