Uso de dll externa dentro do código delphi
Caros colegas, como faço para utilizar uma dll (utilizar das funções ... essa dll foi feita em C++) no delphi ?
Grande abraço a todos e obg, desde já, pela ajuda.
Ricardo
Grande abraço a todos e obg, desde já, pela ajuda.
Ricardo
Ricvictor
Curtidas 0
Respostas
Marco Salles
12/03/2007
Depende de como fora definido estas Funçoes/procedures
Geralmente tres tipos:
No delphi voce deve declarar assim:
Se voce não tiver certeza dos nomes Reais das funçoes exportadas pela DLL , pode usar o Programa de Linha de Comando[b:25e331d291] TDumpda Borland[/b:25e331d291] , disponível na pasta Bin do Delphi, usando a aopção de linha de comando
[b:25e331d291]-ee[/b:25e331d291]
Geralmente tres tipos:
[b:25e331d291]extern ´C´[/b:25e331d291] __declspec(dllexport)
int WINAPI Funcao1(parametros)
[b:25e331d291]extern ´C´[/b:25e331d291] __declspec(dllexport)
int WINAPI Funcao2 (parametros)
P:s As duas primeiras usam convenção de Atribuição de nomes da
linguagem , (indicada pela instrução [b:25e331d291]extern ´C´[/b:25e331d291]
__declspec(dllexport)
int WINAPI Funcao3 (parametros)
No delphi voce deve declarar assim:
Function Funcao1(parametros):Tipo
Stdcall;external ´NomeDaDllEmC++´ name ´Funcao1´
Function Funcao2(parametros):Tipo
Stdcall;external ´NomeDaDllEmC++´
Function Funcao3(parametros):Tipo
Stdcall;external ´NomeDaDllEmC++´ name ´@Funcao3$qqsii´;
Se voce não tiver certeza dos nomes Reais das funçoes exportadas pela DLL , pode usar o Programa de Linha de Comando[b:25e331d291] TDumpda Borland[/b:25e331d291] , disponível na pasta Bin do Delphi, usando a aopção de linha de comando
[b:25e331d291]-ee[/b:25e331d291]
GOSTEI 0
Ricvictor
12/03/2007
Valeu pelo apoio Marcos, estou tentando conforme o amigo me colocou adaptar na minha aplicação ... porém, confesso que estou um tanto enrolado :( ... a minha bronca é que TENHO de utilizar o dispositivo (BIOPOD) da APC numa aplicação de ponto digital. A dll que interage com o dispositivo foi feita em C/C++ ... daí a minha bronca :(
Podes me ajudar na parada ?
Desde já, te agradeço. Grande Abraço.
Ricardo
Podes me ajudar na parada ?
Desde já, te agradeço. Grande Abraço.
Ricardo
GOSTEI 0
Marco Salles
12/03/2007
Mas qual a sua bronca ?? é na criação do cabeçalho das funções CC++ no delphi ????
GOSTEI 0
Ricvictor
12/03/2007
Isso msm Marco. :oops:
GOSTEI 0
Ricvictor
12/03/2007
Ou seja, Marco ... é fazer o leitor se comunicar com a aplicação :oops:
Se puder me ajudar, desde já te agradeço. Estou super atrasado com esse projeto, tentando desenrolar essa bronca :(
Grande Abraço.
Ricardo
Se puder me ajudar, desde já te agradeço. Estou super atrasado com esse projeto, tentando desenrolar essa bronca :(
Grande Abraço.
Ricardo
GOSTEI 0
Marco Salles
12/03/2007
Mas qual a sua bronca ?? é na criação do cabeçalho das funções CC++ no delphi ????
Isso msm Marco.
Eu não sei quais são as funçoes e sus parametros exportadas desta DLL
Não ha conheço. Isto voce tem que buscar em algum Lugar
Veja um exemplo:
Se voce não tiver certeza dos nomes Reais das funçoes exportadas pela DLL , pode usar o Programa de Linha de Comando TDumpda Borland , disponível na pasta Bin do Delphi, usando a aopção de linha de comando
-ee
Vá na pasta Bin e cole o TDump para o Diretório de sua máquina que esta a DLL
agora no Prompt do Dos digite
[b:83735a56df]C:\Seu Diretório\TDump -ee SuaDll.Dll > QualquerNome.txt[/b:83735a56df]
Ao dar um enter , todas as funçoes exportadas desta DLL apareceram neste Arquivo Txt
Outra Ajuda:
Ferramenta HeadConv em
www.drbob42.com
ou
DARTH em
www.delphi.jedi.org/team_darth_home
São duas ferramentas que auxiliam na conversão de um Arquivo de Cabeçalho C/C++ para Delphi
P:S Caso voce querira usar apenas um Função dessa DLL , acredito que dê para fazer apenas o Acesso sem ter que carregar toda a DLL . isto se faz com Tipo Procedimental..
GOSTEI 0
Ricvictor
12/03/2007
Valeu Marco ... baixei o aplicativo, fiz uns testes de conversão. Vai me ser de grande valia. Espero que a partir daqui eu consiga desenrolar :?
Grande abraço
Ricardo
Grande abraço
Ricardo
GOSTEI 0
Marco Salles
12/03/2007
Valeu ..
Boa sorte
Boa sorte
GOSTEI 0