Como usar das DLL´s com xharbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

MARINI
Usuário Nível 3
Usuário Nível 3
Mensagens: 288
Registrado em: 06 Jul 2004 08:06
Localização: Pindamonhangaba SP

Mensagem por MARINI »

Já achei.
Obrigado
Sds
Marini
MARINI
Usuário Nível 3
Usuário Nível 3
Mensagens: 288
Registrado em: 06 Jul 2004 08:06
Localização: Pindamonhangaba SP

Mensagem por MARINI »

Acrescentei a HBCOMM.LIB e ao compilar está acusando:

unresolved external ´_hb_stack`referenced from C:\XHARBOUR\LIB\HBCOMM.LIB|hbcomm

O que está faltando agora?
Grato.
Sds
Marini
MARINI
Usuário Nível 3
Usuário Nível 3
Mensagens: 288
Registrado em: 06 Jul 2004 08:06
Localização: Pindamonhangaba SP

Mensagem por MARINI »

Inclui a linha

#include "hbstack.h"

e passou a dar o erro:

xHarbour Compiler build 0.99.70 (SimpLex)
Copyright 1999-2006, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'A.PRG'...
hbole.h(62) Error F0026 Parse error in constant expression '\'

Procurei se tem esse hbole.h para ver a linha 62 mas não achei este arquivo.

E agora?
Sds
Marini
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Olá Marini,

Provavelmente você está com uma hbcomm compilada com uma versão mais antiga do xharbour...

Não estou no meu pc, mas se vc aguardar até umas 21:00hs posso te enviar os fontes, ou se der sorte a própria lib compilada.

Você pretende testar com ECF?


Falou!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

MARINI escreveu:Inclui a linha

#include "hbstack.h"

e passou a dar o erro:

xHarbour Compiler build 0.99.70 (SimpLex)
Copyright 1999-2006, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'A.PRG'...
hbole.h(62) Error F0026 Parse error in constant expression '\'

Procurei se tem esse hbole.h para ver a linha 62 mas não achei este arquivo.

E agora?
Compile a LIB para vc mesmo....ou baixa para a versão 0.99.70 no link abaixo:
http://www.sygecom.com.br/xharbour/hbcomm_09970.zip

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
MARINI
Usuário Nível 3
Usuário Nível 3
Mensagens: 288
Registrado em: 06 Jul 2004 08:06
Localização: Pindamonhangaba SP

Mensagem por MARINI »

Deu certo.
Rodei o TLIB HBCOMM.LIB, texto.txt e vi as funções disponíveis.

Grato.
Sds
Marini
Cezar
Usuário Nível 3
Usuário Nível 3
Mensagens: 189
Registrado em: 27 Mai 2006 14:03

Mensagem por Cezar »

Ola Stanis,

Como estou iniciando em ECF e lendo este topico voce comentou que é melhor usar comunicação direta do que DLL.

Da pra usar as DLL por exemplo da Bematech no xHarbour uma que elas sao em Delphi pu VB??

Poderia me dar uma ideia?

grato!!
cez_a@ubbi.com.br
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Cezar escreveu:Da pra usar as DLL por exemplo da Bematech no xHarbour uma que elas sao em Delphi pu VB??
Sim, basta seguir os passos da minha primeira mensagem neste tópico.

No entanto, como eu já disse, comunicação direta é mais segura e confiável. também já dei um exemplo neste mesmo tópico.

Falou!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Reginaldo
Usuário Nível 2
Usuário Nível 2
Mensagens: 71
Registrado em: 14 Jul 2004 08:06
Localização: Lagoa da Prata - MG
Contato:

Mensagem por Reginaldo »

Caro Stanis,

Estava procurando sobre dll bematech e encontrei este tópico e numa das mensagens vc diz " não use DLLs para ECF", comentando ainda que comunicação direta é melhor e mais rápida...

Bom, o problema é que eu uso os comandos da hbcomm e estou tendo problema de lentidão na comunicação, estava pensando em mudar tudo para a DLL... Mas, quando vi sua postagem, parei pra pensar...

Bom, se puder me ajudar, eu agradeceria muito, não entendo porque tenho problemas de velocidade, se tô usando comunicação direta... até que o problema não é mandar o comando, o problema é aguardar pelo retorno...

Faço um loop para aguardar o retorno e a cada passada dou um tempo de meio segundo, mas se o retorno não vier na primeira passada do loop, não adianta passar de novo, pois o retorno não vem mais e dá erro de comunicação.

Se puder me mandar um exemplo de como vc faz, eu ficaria muito agradecido...

Eu fiz a minha rotina de acordo com os exemplos de comunicação direta da Bematech... inclusive, já utilizo assim há tempos, mas, não tô tendo sucesso, no que diz respeito a velocidade...

Obrigado,

Reginaldo J. Silva
Reginaldo J. Silva
Analista de Sistemas
prodasys
Usuário Nível 1
Usuário Nível 1
Mensagens: 12
Registrado em: 21 Ago 2007 18:28
Localização: Itapetininga-SP

Mensagem por prodasys »

Eu utilizo as DLL´s da Daruma e da Bematech e funciona muito bem.Ex:

Function Main()
public nHandle:=loadlibrary("Bemafi32.dll")
...
leituraX()
...
freelibrary(nHandle)
return nil

function LeituraX()
dllcall(nHandle,32,"Bematech_FI_LeituraX")
return nil
Paulo Penalva
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Mensagem por marcos.gurupi »

E quando vc (prodasys) tiver q usar parametro do tipo memoria fiscal ou mesmo pegar o numero do ultimo coo como vc faz?

Marcos Roberto
Marcos Roberto
NetService Software
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Código: Selecionar todos

Function Main() 
public nHandle:=loadlibrary("Bemafi32.dll") 
... 
leituraX() 
... 
freelibrary(nHandle) 
return nil 

function LeituraX() 
dllcall(nHandle,32,"Bematech_FI_LeituraX") 
return nil
Funcionou mesmo, belezinha.
Mas ao tentar "Bematech_FI_AbreCupom" não foi ...
então pergunto : como colocar os parametros que no caso deveria ser o cpf ou cgc ?
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
prodasys
Usuário Nível 1
Usuário Nível 1
Mensagens: 12
Registrado em: 21 Ago 2007 18:28
Localização: Itapetininga-SP

Mensagem por prodasys »

Mas ao tentar "Bematech_FI_AbreCupom" não foi ...
então pergunto : como colocar os parametros que no caso deveria ser o cpf ou cgc ?
vNumCgc="01.001.0001/0001-01"
dllcall(nHandle,32,"Bematech_FI_AbreCupom",trim(wNumCgc)).O mesmo caso para funcoes da DLL com varios parametros.

Espero ter ajudado.
Paulo Penalva
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Obrigado meu caro, tinha faltado o Trim(). :))
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
momente
Usuário Nível 3
Usuário Nível 3
Mensagens: 496
Registrado em: 03 Mar 2005 11:53
Localização: São Carlos-SP
Contato:

Mensagem por momente »

Stanis,

Uso minigui/xharbour 09970, pergunto: Devo usar a hbcomm da minigui ou neste caso o melhor seria usar a do xharbour? e a maneira de programar para as duas, são do mesmo jeito?

valeu!
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Responder