Página 2 de 2
Enviado: 13 Dez 2007 16:04
por rodrmigu
Só uma correção nos termos, na linha typedef, é a criação de um tipo de dado baseado em protótipo de função para pointeiro.
[]'s
Rodrigo
Enviado: 13 Dez 2007 16:20
por paulobergo
Ok Rodrigo, ok...
Mais uma vez... grato pela dica...
Observei, já algumas coisas...
A função não gera erro após o "retorno do foco" para o executável clipper se usar StdCall na declaração da função... se usar Export, causa falha...
Mantendo StdCall, outras aplicações (principalmente outras dll's resource feitas nos Delphi 6 ou 4) não consegem chamar as mesmas funções... mas tudo bem... isso é contornável...
O mais importante é que consegui criar uma dll bem simples com um TDatabase e um TQuery para acessar as tabelas MySQL... e até o momento deu certo...
Agora, já querendo explorar um pouquinho mais... como definir outra função em C no bloco?
Mais ou menos assim?
Código: Selecionar todos
#PRAGMA BEGINDUMP
#include "hbapi.h"
#include "windows.h"
typedef LPSTR (WINAPI *_SNADAFAZ) ( LPSTR snada, INT num );
HB_FUNC( NADAFAZ )
{
HINSTANCE handle = LoadLibrary("minhadll.dll");
... conteúdo da função NadaFaz
}
}
#PRAGMA ENDDUMP
Código: Selecionar todos
#PRAGMA BEGINDUMP
#include "hbapi.h"
#include "windows.h"
typedef LPSTR (WINAPI *_SNADAFAZ) ( LPSTR snada, INT num );
HB_FUNC( TUDOFAZ )
{
HINSTANCE handle = LoadLibrary("outradll.dll");
... conteúdo da função TUDOFAZ
}
}
#PRAGMA ENDDUMP
?
Mais uma vez, grato pela atenção!
Abraços!
Enviado: 13 Dez 2007 19:40
por rodrmigu
Ola,
eu coloquei um exemplo completo das rotinas que uso, da uma olhadinha logo no começo deste topico.
[]'s
Rodrigo
Re: Uma luz no fim do túnel?
Enviado: 14 Dez 2007 17:00
por rodrmigu
paulobergo escreveu:C
Código: Selecionar todos
HINSTANCE handle = LoadLibrary("D:\DOWNLOAD\SIA\FAZNADA.DLL");
Não funcionou
Em C, tentat fazer assim: D:\\download\\sia\\faznada.dll"
ou passa o nome da .dll como um parametro, dai vc pode passar o path normalmente.
[]'s
Rodrigo