Guten Mittag,
ich möchte gerne alle Funktionen, welche von einer
DLL exportiert werden, in ein TStringList Objekt auflisten.
Das Problem ist, dass ich schon am Anfang scheitere.
Delphi-Quellcode:
function GetFunctions(lpDllName: String):TStringList;
var
hFile: THandle;
ofStct: OFSTRUCT;
IMGDebugInfo: PImageDebugInformation;
pExportNames: Pointer;
pExportSize: Cardinal;
begin
hFile := OpenFile(PChar(lpDllName), ofStct, OF_READ);
if (hFile <> 0) and (hFile <> INVALID_HANDLE_VALUE) then
begin
IMGDebugInfo := MapDebugInformation(hFile, PChar(lpDllName), nil, 0);
if IMGDebugInfo <> nil then
begin
pExportNames := IMGDebugInfo.ExportedNames;
pExportSize := IMGDebugInfo^.ExportedNamesSize; //<-- ist immer 0 :-(
//Continue with the Code.
UnmapDebugInformation(IMGDebugInfo);
end;
CloseHandle(hFile);
end;
end;
Ich habe noch nie mit den obigen Funktionen gearbeitet, desshalb erhoffe ich Hilfe von euch
Also, das Problem ist, dass ExportNameSize immer 0 ist. Aber wie ich aus
MSDN gelesen habe
brauch ich die ja um dann an die Funktionen zu kommen.
Zitat:
ExportedNamesSize
The size of the ExportedNames member, in bytes.
ExportedNames
A pointer to a series of null-terminated strings that name all the functions exported from the image.
Da es 0 ist, gehe ich davon aus, dass er irgendwie nicht an die Funktionen kommt,
bzw. irgendwo ein Fehler ist.
Weiß da jemand Rat? Über Hilfe würde ich mich wirklich freuen.
MfG: sk0r