Ajuda - Busca - Membros - Calendário
Versão Completa: Utilizar Dll C# No Delphi 5
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
Bruno Nunes
Cumprimentos,

Migrei já há algum tempo para o c#, mas ainda tenho alguns programas escritos em delphi 5 que ainda estão em operação.

Surgiu-me agora a necessidade de acrescentar algumas funcionalidades a um desses programas escritos em delphi 5, funcionalidades essas que já estão implementadas em c#. No entanto, devo admitir que já não me lembro como raio eu utilizava dlls que não conseguia importar.

Lembro-me que instanciava objectos, mas pouco mais. Já tentei fazer o dynamic loading da dll, mas não consigo extrair as funções.

Como exemplo, vamos imaginar que tenho duas classes na dll (teste.dll):
public static class DataModel - que contém um conjunto de funções de dados, por exemplo
{
public static bool ligar();
public static bool desligar();
public static void buildReport();
}

public class External - que contém as funções que pretendia chamar externamente, por exemplo
{
public void testeCall()
{
DataModel.ligar();
DataModel.buildReport();
DataModel.desligar();
}
}

O que tentei fazer no delphi, mas sem sucesso, foi o seguinte:

TTesteCall = procedure();
THandle = Integer;

var Handle: THandle;
TesteCall: TTesteCall;
teste: TObject;
begin
Handle := LoadLibrary('teste.dll');
if Handle <> 0 then
begin
@TesteCall := GetProcAddress(Handle, 'testeCall');
if @TesteCall <> nil then
begin
(...)
end;
FreeLibrary(Handle);
end;
end;


Consigo fazer o load da dll sem problemas, mas não consigo ir buscar a função qie pretendo... Alguém me poderá dar alguma dica, ou orientar-me para alguma documentação que me ajude a refrescar a memória? Lembro-me que não era desta forma que o fazia, mas pouco mais...wink.gif

Obrigado,

Bruno Nunes
JPedro
Tenho 2 ou 3 bons exemplos disso mas são de dll's feitas em Delphi e chamadas em Delphi.
Se ainda estiveres interessado, coloca aí o teu e-mail que envio.
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.