[Delphi] Funkcje w dll'u

0

Witajcie chłopaki!
Mam pytanko - Tak, jeszcze jedno :p
Czy ktoś wie jak pobrać listę parametrów funkcji pliku dll. ?

Oto przykład programu - może się komuś przyda...

---CUT---
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ImageHlp, ComCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog: TOpenDialog;
ListBox: TListBox;
Status: TStatusBar;
procedure Button1Click(Sender: TObject);
procedure ListDLLExports(const FileName: string; List: TStrings);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
List: TStrings;
i: Integer;
//s: string;
plik:string;
begin
ListBox.Items.Clear;
List := TStringList.Create;
if OpenDialog.Execute then plik:=OpenDialog.Filename;
try
ListDLLExports(plik, List);
Status.Panels[0].Text:='Liczba funkcji: '+IntToStr(list.Count);
for i := 0 to List.Count - 1 do
ListBox.Items.Add(List[i]);
finally
List.Free
end;
end;
procedure TForm1.ListDLLExports(const FileName: string; List: TStrings);
type
TDWordArray = array [0..$FFFFF] of DWORD;
var
imageinfo: LoadedImage;
pExportDirectory: PImageExportDirectory;
dirsize: Cardinal;
pDummy: PImageSectionHeader;
i: Cardinal;
pNameRVAs: ^TDWordArray;
Name: string;
begin
List.Clear;
if MapAndLoad(PChar(FileName), nil, @imageinfo, True, True) then
begin
try
pExportDirectory := ImageDirectoryEntryToData(imageinfo.MappedAddress,
False, IMAGE_DIRECTORY_ENTRY_EXPORT, dirsize);
if (pExportDirectory nil) then
begin
pNameRVAs := ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,
DWORD(pExportDirectory^.AddressOfNames), pDummy);
for i := 0 to pExportDirectory^.NumberOfNames - 1 do
begin
Name := PChar(ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,
pNameRVAs^[i], pDummy));
List.Add(Name);
end;
end;
finally
UnMapAndLoad(@imageinfo);
end;
end;
end;
end.
---CUT---

0

Po pierwsze poco
a po drugie patrz pierwsze

0

Po pierwsze poco
a po drugie patrz pierwsze

jeśli masz dll'ka którego funkcji nie znasz...

0

Czy ktoś wie jak pobrać listę parametrów funkcji pliku dll. ?

Jedyny znany mi sposób to z dokumentacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1