Listar funcoes da DLL
Pessoal,
Bom dia!
Como faço para listar as funcoes existentes em uma DLL.
No caso seria a dll do link abaixo:
http://www.4shared.com/file/42246638/fe7762f2/KEYLIB32.html?dirPwdVerified=75a104ee
Estou tentando acessar o seguinte metodo da DLL:
Estou fazendo assim:
Mas o seguinte erro é retornado:
Project Project1.exe raised exception class EAccessViolation with message ´Access violation at address 004F228 in modulo ´Project1.exe´. Read of address 8d968b77´. Process sotpped. Use Step or Run to continue.
Eu fiz um teste com outra funcao que sei que tem nesta dll:
e esta funcionou perfeitamente entao estou achando que o outro metodo que estou tentando usar nao existe ou esta declarado de forma diferente. por isso gostaria de listar a funcoes que esta dll tem.
Esta DLL eu peguei na net e nao sei em que linguagem ela foi desenvolvida.
Se alguem puder me ajudar fico grato.
Abs a todos!
Bom dia!
Como faço para listar as funcoes existentes em uma DLL.
No caso seria a dll do link abaixo:
http://www.4shared.com/file/42246638/fe7762f2/KEYLIB32.html?dirPwdVerified=75a104ee
Estou tentando acessar o seguinte metodo da DLL:
Procedure pp_encrypt (iinstr: PChar; pwstr: PChar; ret: PChar);
Estou fazendo assim:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Procedure pp_encrypt (iinstr: PChar; pwstr: PChar; ret: PChar); stdcall; external ´KeyLib32.dll´;
procedure TForm1.Button1Click(Sender: TObject);
var
ret : PChar;
begin
pp_encrypt(´marcelo´,´senha´,ret);
end;
end.
Mas o seguinte erro é retornado:
Project Project1.exe raised exception class EAccessViolation with message ´Access violation at address 004F228 in modulo ´Project1.exe´. Read of address 8d968b77´. Process sotpped. Use Step or Run to continue.
Eu fiz um teste com outra funcao que sei que tem nesta dll:
Function pp_hdserial (drive : PChar): LongInt; stdcall;
e esta funcionou perfeitamente entao estou achando que o outro metodo que estou tentando usar nao existe ou esta declarado de forma diferente. por isso gostaria de listar a funcoes que esta dll tem.
Esta DLL eu peguei na net e nao sei em que linguagem ela foi desenvolvida.
Se alguem puder me ajudar fico grato.
Abs a todos!
Mmoreira
Curtidas 0
Respostas
Martins
28/03/2008
Seguinte, ao q parece essa DLL foi feita e Visual C++, e a versão q baixei pelo link é Trial e já expirou, pelo menos foi a mensagem q recebi, outra coisa, pq vc não muda esse código um pouco, vc já tentou usar outro nome para aquela variável.
tipo
Algo assim.
Ressalto q não consegui usar a DLL pq é trial e me disse q já expirou.
var ret : PChar; begin pp_encrypt(´marcelo´,´senha´,ret); end;
tipo
var A : PChar; begin pp_encrypt(´marcelo´, ´senha´, ret); Edit1.Text := A; end;
Algo assim.
Ressalto q não consegui usar a DLL pq é trial e me disse q já expirou.
GOSTEI 0
Mmoreira
28/03/2008
Martins,
Realmente para usar a DLL tem de instalar a versao trial do pacote que no caso eu instalei e nao recebe a mensagem de expiracao da DLL.
Eu fiz a mudanca que voce sugeriu e mesmo assim tive o mesmo erro.
Realmente para usar a DLL tem de instalar a versao trial do pacote que no caso eu instalei e nao recebe a mensagem de expiracao da DLL.
Eu fiz a mudanca que voce sugeriu e mesmo assim tive o mesmo erro.
GOSTEI 0
Martins
28/03/2008
Martins,
Realmente para usar a DLL tem de instalar a versao trial do pacote que no caso eu instalei e nao recebe a mensagem de expiracao da DLL.
Eu fiz a mudanca que voce sugeriu e mesmo assim tive o mesmo erro.
Marcelo tá meio complicado então, o código q coloquei anteiormente, esqueci de trocar o Ret por A, mas tudo bem, não tenho o pacote aqui então fica complicado testar para vc.
Mas vamos ver o q está errado no uso da função, pq ela deveria funcionar sem causar estouro.
GOSTEI 0