Como usar das DLL´s com xharbour

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

Moderador: Moderadores

luizservulo
Usuário Nível 1
Usuário Nível 1
Mensagens: 43
Registrado em: 02 Jan 2007 18:59
Localização: Diadema/SP

Como usar das DLL´s com xharbour

Mensagem por luizservulo »

Minha eterna dúvida...


qual a formula para se usar as funções das mais variadas DLL´s existentes???

Alguem com paciência para descrever?



Gradecido de antemão


:{
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

No XP, compile e execute:

Código: Selecionar todos

procedure main()
  DLLCall("WINMM.DLL",32,"sndPlaySoundA", "Inicialização do Windows XP.wav", 0 )
return
Onde:
"WINMM.DLL": é a DLL, em path acessível.
32: não sei, deve ser de 32 bits, mas o importante é saber que é fixo.
"sndPlaySoundA" : nome da função
"Inicialização do Windows XP.wav": parametro 1
0: parametro 2
etc etc

Espero que ajude, é bem simples, testado e aprovado com aBemaFI32.dll da bematech, apesar de que neste caso comunicação direta é melhor.

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.
luizservulo
Usuário Nível 1
Usuário Nível 1
Mensagens: 43
Registrado em: 02 Jan 2007 18:59
Localização: Diadema/SP

Mensagem por luizservulo »

Stanis Luksys escreveu:No XP, compile e execute:

Código: Selecionar todos

procedure main()
  DLLCall("WINMM.DLL",32,"sndPlaySoundA", "Inicialização do Windows XP.wav", 0 )
return
Onde:
"WINMM.DLL": é a DLL, em path acessível.
32: não sei, deve ser de 32 bits, mas o importante é saber que é fixo.
"sndPlaySoundA" : nome da função
"Inicialização do Windows XP.wav": parametro 1
0: parametro 2
etc etc

Espero que ajude, é bem simples, testado e aprovado com aBemaFI32.dll da bematech, apesar de que neste caso comunicação direta é melhor.

Falou!
gradecido irmãozinho Stanis pela sua prestimosa ajuda, vamos lembrar que ela só funciona no xHarbou 0.99.70

Mais funciona que é uma beleza.

Agora aproveitando da sua dica, acessar a Impressora Fiscal diretamente, você teria um exemplo disso?
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 »

Caros eu tenho uma documentacao do check-check para implementar o sistema com a comunicacao com o mesmo e ela tem uma dll chamada checkcom.dll, eu entaum deveria usar esse mesmo raciocinio para chamar a dll checkcom?

Marcos Roberto.
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 »

Código: Selecionar todos

procedure main()
  DLLCall("WINMM.DLL",32,"sndPlaySoundA", "Inicialização do Windows XP.wav", 0 )
return
Era isto que estava procurando.
Poderia, por gentileza, informar onde posso encontrar um manual do xharbour com estas funções?

Grato
Sds
Marini
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:

Código: Selecionar todos

procedure main()
  DLLCall("WINMM.DLL",32,"sndPlaySoundA", "Inicialização do Windows XP.wav", 0 )
return
Era isto que estava procurando.
Poderia, por gentileza, informar onde posso encontrar um manual do xharbour com estas funções?

Grato
Tche, o xharbour não tem manual...é tudo no braço mesmo...baixa a CVS e localize essa Função e tente entender....qualquer coisa faça uns teste ai... e posta aqui...que vamos dando um jeito..

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

xHarbour Guide

Mensagem por MARINI »

Achamos o manual para vender no link:

http://www.xharbour.com/xhdn/referenceguide/

Custa U$ 58.00 e pagamento com cartao.
Vem em PDF ou CHM.
Baixamos e tem tudo.
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 »

Obs: toda operação de compra e download do manual durou menos de 10 minutos.
Sds
Marini
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

e esse manual é completo...e vale para o xharbour free tb. ?

alias vale a pena comprar esse manual ? eu tenho aqui um .CHM do demo comercial e não fala nd sobre o uso de DLL...

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

luizservulo escreveu:Agora aproveitando da sua dica, acessar a Impressora Fiscal diretamente, você teria um exemplo disso?
Olá,

EXEMPLO DE LEITURA X POR COMUNICAÇÃO DIRETA:

Código: Selecionar todos

if MODELO_ECF = "SWEDA"
   cCmd := chr(27)+".17}"
elseif MODELO_ECF = "BEMATECH"
   cCmd := chr(2)+chr(4)+chr(0)+chr(27)+chr(14)+chr(41)+chr(0)
elseif MODELO_ECF = "DARUMA"
   // etc etc
endif

nHandle := Init_Port( "COM1", 9600, 8, 0, 1, 256 )

if ! OutChr( nHandle, cCmd, Len( cCmd ) )
   ? "Erro ao enviar comando."
endif

UnInt_Port( nHandle )
Como eu disse no início, é muito melhor que DLL.

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.
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 »

sygecom escreveu:e esse manual é completo...e vale para o xharbour free tb. ?

alias vale a pena comprar esse manual ? eu tenho aqui um .CHM do demo comercial e não fala nd sobre o uso de DLL...

Abraços
Leonardo Machado
Até agora achei tudo que queria, inclusive o DLLCALL(), com exemplos.
E tem muitas coisas interessantes.
Estou usando a xHarbour source...
Sds
Marini
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:
sygecom escreveu:e esse manual é completo...e vale para o xharbour free tb. ?

alias vale a pena comprar esse manual ? eu tenho aqui um .CHM do demo comercial e não fala nd sobre o uso de DLL...

Abraços
Leonardo Machado
Até agora achei tudo que queria, inclusive o DLLCALL(), com exemplos.
E tem muitas coisas interessantes.
Estou usando a xHarbour source...
Tche, vlw pelas explicação...muito boa essa CHM.....e seria melhor ainda se fosse free...

Só para completar na CVS vem junto uma Documentação...meia fraca...mas tira algumas duvidas...

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 »

[quote="Stanis Luksys
EXEMPLO DE LEITURA X POR COMUNICAÇÃO DIRETA:

Código: Selecionar todos

if MODELO_ECF = "SWEDA"
   cCmd := chr(27)+".17}"
elseif MODELO_ECF = "BEMATECH"
   cCmd := chr(2)+chr(4)+chr(0)+chr(27)+chr(14)+chr(41)+chr(0)
elseif MODELO_ECF = "DARUMA"
   // etc etc
endif

nHandle := Init_Port( "COM1", 9600, 8, 0, 1, 256 )

if ! OutChr( nHandle, cCmd, Len( cCmd ) )
   ? "Erro ao enviar comando."
endif

UnInt_Port( nHandle )
A propósito foi consultar no manual as funções Init_Port, OutChr e UnInt_port e não consta nada.
Tentei compilar o exemplo acima e acusa que não achou as funções.
Você acrescentou alguma LIB?
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,

A biblioteca padrão do xHarbour para comunicação serial é a HBComm.lib.

Acrescente ela no seu script de compilação e já deve funcionar.

No caso do exemplo acima, é impressionante a velocidade e acima de tudo a simplicidade da programação, com um pouco de calma é só criar as funções e jogar tudo numa lib propria, como eu fiz aqui (até pensei em vender lol )...

Eu uso mais ou menos assim:

ECF_LeituraX( modelo )
ECF_AbrirCupom( modelo )
etc...

Atualmente com suporte para Daruma, Bema e Sweda...

Não se compara com o uso de DLL ou driver... hehehe

Quanto a documentação, é bem verdade que falta muito, e é por isso que não recomendo livros ou manuais, por que no xhabnour em sí a gente se vira legal... O poder está nas novas bibliotecas, gráficas por exemplo ou até de comunicação como a hbcomm...

Falou... E não use DLLs para ECF :))
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.
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 »

Stanis, procurei essa LIB e não achei na pasta do xHarbour.
Onde consigo ela?
Grato.
Sds
Marini
Responder