Página 1 de 1
Coletor de dados
Enviado: 05 Jan 2007 13:52
por Leandro2C
Caros colegas, após migrar meu sistema clipper p/ xharbour+minigui (console), deparei-me com o seguinte: utilizo um coletor de dados (
www.colleter.com.br), e eles somente tem a lib p/ clipper e dll p/ VB e Delphi. Mandei p/ eles um demo do Gambeta sobre insc. estadual (dll de delphi que funciona com o xharbour), p/ ver se adiantava. Alguém teria uma dica p/ eu passar p/ eles sobre a integração de xharbour com dll, ou essa integração já é um dispositivo comum do xharbour? Tô parado, pois quando tentei deixar o coletor de dados no clipper, começou a dar problemas de cdx. Obrigado à todos.
Leandro
São Lourenço - MG
Enviado: 07 Jan 2007 11:33
por Luiz
Para não ficar parado vc poderia usar uma ponte entre o leitor e seu programa, seria um programinha apenas para a coleta dos dados, e este mandaria os dados para o programa principal.
Seria um quebra-galho enquanto vc aguarda a resposta do revendedor.
Enviado: 07 Jan 2007 14:01
por momente
Amigo Leandro2C,
Como funciona e seu coletor de dados?
Valeu? :)Pos
Enviado: 07 Jan 2007 16:02
por Stanis Luksys
Olá amigo,
Uma forma simples de se acessar DLL com xHarbour é usando a biblioteca WHAT32.LIB. Com ela você insere no seu programa qualquer DLL 32 bits como se fosse uma LIB :=))
Exemplo usando Win API:
Código: Selecionar todos
STATIC USER32
USER32 := LoadLibrary("USER32")
IMPORT USER32 FUNCTION HWND FindWindow( LPCTSTR lpClassName, LPCTSTR lpWindowName ) as FindWindow
FreeLibrary("USER32")
Neste trecho importei a função FindWindow da USER32.DLL do Windows direto pra dentro do meu sistema :=))
Para usar a WHAT32.DLL você precisa baixar o pacote CONTRIB do xHarbour e compila-la.
Boa sorte!
Enviado: 08 Jan 2007 00:11
por rochinha
Amiguinho
Os exemplos para uso da biblioteca também estão em VB?
Me envia para eu dar uma olhada
Enviado: 08 Jan 2007 11:57
por Leandro2C
Caros colegas, obrigado pela atenção.
Luiz, já pensei em fazer a ponte, acontece que tenho que atulizar outros dbfs,
e nesse momento dá problema na gravação dos mesmos.
Momente, funciona da seguinte maneira: no servidor, fica um executável que
trabalha com um loop contínuo, capturando dos coletores que são ligados num
hub próprio, como disse anteriormente, em clipper é fácil.
Stanis, na linha 43 dá o erro "syntax error at xpcom1". Abaixo o código.
Rochinha, seguiu p/ seu email os dados.
#include "minigui.ch"
Function Main
public recb,canal,cnj
recb:=spac(50)
canal:=0
cnj:=0
DEFINE WINDOW Form1 ;
AT 0,0 ;
WIDTH 340 ;
HEIGHT 200 ;
TITLE "Teste " ;
MAIN
@ 40,210 BUTTON Button1 CAPTION "Verificar" ;
ON CLICK VerificarIE() ;
TOOLTIP ""
END WINDOW
CENTER WINDOW Form1
ACTIVATE WINDOW Form1
Return
Static Function VerificarIE()
x:=ENVBEEP(0,0,1)
if x=1
msginfo('Retornado')
else
msginfo('Nao retornado')
endi
Form1.Button1.SetFocus
Return Nil
static function Envbeep
xpcom1 := LoadLibrary("xpcom1")
* aqui d o erro
import xpcom1 function hwnd EnvBeep(LPCTSTR lpClassName, LPCTSTR lpWindowName ) as EnvBeep
freelibrary("xpcom1")
Enviado: 08 Jan 2007 16:27
por Stanis Luksys
Leandro2C escreveu:xpcom1 := LoadLibrary("xpcom1")
* aqui d o erro
import xpcom1 function hwnd EnvBeep(LPCTSTR lpClassName, LPCTSTR lpWindowName ) as EnvBeep
freelibrary("xpcom1")
Certo,
O caminho é mais ou menos este aí mesmo, mas veja, você simplesmente copiou a chamada da função que eu postei como exemplo...
Você precisa na verdade saber como é a chamada a esta função em especial, se é para VB deve seguir os mesmos moldes, porém os TIPOS de dados provavelmente não são estes.
Imagine que você tem uma função em Clipper que está dentro de uma DLL.
Em C (como é a maioria das DLLs) você ja declararia definindo os tipos:
Aí no seu PRG vc precisa chamar a função da sua DLL:
Código: Selecionar todos
MinhaDLL := LoadLibrary("MinhaDLL")
import MinhaDLL function int Soma(int a, int B ) as Soma
freelibrary("MinhaDLL")
Deu pra entender mais ou menos? O que você precisa saber é os parametros da função e seus tipos, bem como o tipo de dado de seu retorno.
É por aí...
Enviado: 08 Jan 2007 19:51
por rochinha
Amiguinho Stanis
Voce criou alguma DLL para Harbour?
Voce faz as chamadas as funções da DLL via What32?
Depois que c sarou c melhorou?
Voce tem a What32.LIB ai e pode me mandar?
Obrigado
Enviado: 08 Jan 2007 20:21
por Stanis Luksys
Opa,
Rochinha, não criei nenhuma DLL não, apenas estava exemplificando o acesso às funções, que é bem simples desta forma mesmo com a WHAT32.
Eu tenho aqui a WHAT32.LIB gerada com xHarbour .97, mas só vai funcionar se o seu xHarbour também for este... Se não for você precisará compila-la, ela vem no pacote contribute disponível em
www.xharbour.org.
Se você usa o .97 mesmo, me dá um alô que eu já te envio compilada, assim você poupa o 'trabalho sujo'... hehehe
Pois é cara, eu to um pouco melhor mas ainda to meio mal... Mas de qualquer forma estamos aí!
Falou!