Fórum Carregar dll gerada no C# pelo Delphi #407703
16/09/2011
0
Bom dia,
Pessoal estou com um problema sobre como importar as funções de uma dll que foi desenvolvida pelo C#!
Na dll feita pelo C# existe uma classe chamada Encryptio e dentro dessa classe contem um método chamado Encrypt!
Gostaria de usar essa função Encrypt na minha aplicação, mas infelizmente só estou conseguindo carregar a dll e não consigo acessar a função.
Abaixo está o procedimento de como estou tentando acessa-la:
procedure TForm1.FormCreate(Sender: TObject);type // vamos declarar um tipo function TCripto = function(password: String): String; stdcall;var Encrypt: TCripto; // uma variável que representará a função DLLHandle: THandle; // este é o handle para a DLLbegin // vamos carregar a DLL DLLHandle := LoadLibrary('Cripto.dll'); try // vamos obter o endereço da função na DLL Encrypt := GetProcAddress(DLLHandle,'Encrypt'); // vamos chamar a função agora if Assigned(Encrypt) then ShowMessage((Encrypt('asd'))) else ShowMessage('Não foi possível chamar a rotina desejada'); finally FreeLibrary(DLLHandle); // vamos liberar a DLL end;end;
Fico no aguardo de alguma ajuda!
Pessoal estou com um problema sobre como importar as funções de uma dll que foi desenvolvida pelo C#!
Na dll feita pelo C# existe uma classe chamada Encryptio e dentro dessa classe contem um método chamado Encrypt!
Gostaria de usar essa função Encrypt na minha aplicação, mas infelizmente só estou conseguindo carregar a dll e não consigo acessar a função.
Abaixo está o procedimento de como estou tentando acessa-la:
procedure TForm1.FormCreate(Sender: TObject);type // vamos declarar um tipo function TCripto = function(password: String): String; stdcall;var Encrypt: TCripto; // uma variável que representará a função DLLHandle: THandle; // este é o handle para a DLLbegin // vamos carregar a DLL DLLHandle := LoadLibrary('Cripto.dll'); try // vamos obter o endereço da função na DLL Encrypt := GetProcAddress(DLLHandle,'Encrypt'); // vamos chamar a função agora if Assigned(Encrypt) then ShowMessage((Encrypt('asd'))) else ShowMessage('Não foi possível chamar a rotina desejada'); finally FreeLibrary(DLLHandle); // vamos liberar a DLL end;end;
Fico no aguardo de alguma ajuda!
Thiago Darlei
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)