Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Alle exportierten Funktionen einer DLL auflisten (https://www.delphipraxis.net/21447-alle-exportierten-funktionen-einer-dll-auflisten.html)

Phoenix 3. Mai 2004 08:55


Alle exportierten Funktionen einer DLL auflisten
 
Hiho,

wie kann ich auf die schnelle einfach eine Liste aller zur Verfügung stehenden Funktionen einer DLL herausfinden?

Luckie 3. Mai 2004 09:00

Re: Alle exportierten Funktionen einer DLL auflisten
 
Kuck dir mein DLLExports an. ;)

TopDogg 3. Mai 2004 09:03

Re: Alle exportierten Funktionen einer DLL auflisten
 
hi,
Delphi-Quellcode:
uses
  ImageHlp;

procedure LoadedDLLExportsFunc(aFileName: string; aList: tStrings);
type
  PDWORDArray = ^TDWORDArray;
  TDWORDArray = array[0..0] of DWORD;
var
  imageinfo: LoadedImage;
  pExportDirectory: PImageExportDirectory;
  dirsize: Cardinal;
  pDummy: PImageSectionHeader;
  i: Cardinal;
  pNameRVAs: PDWORDArray;
  Name: string;
begin
  imageinfo.MappedAddress := PChar(GetModuleHandle(@aFileName[1]));
  if Assigned(imageinfo.MappedAddress) then
  try
    imageinfo.FileHeader := ImageNtHeader(imageinfo.MappedAddress);
    pExportDirectory := ImageDirectoryEntryToData(imageinfo.MappedAddress,
      True, IMAGE_DIRECTORY_ENTRY_EXPORT, dirsize);
    if (pExportDirectory <> nil) then
    begin
      try
        pNameRVAs := PDWORDArray(PChar(imageinfo.MappedAddress) + DWORD(pExportDirectory^.AddressOfNames));
      except
        aList.Add('ERROR: #' + IntToStr(GetLastError));
      end;
      for i := 0 to pExportDirectory^.NumberOfNames - 1 do
        aList.Add(PChar(imageinfo.MappedAddress) + pNameRVAs^[i]);
    end;
  finally
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  LoadedDLLExportsFunc('ntdll.dll', Listbox1.Items);
end;
hab ich von assarbads seite.

Phoenix 3. Mai 2004 09:03

Re: Alle exportierten Funktionen einer DLL auflisten
 
Zitat:

Zitat von Luckie
Kuck dir mein DLLExports an.

Hüstel. :oops:
Ist ja nicht so, das ich die Deine Donwloadseite nicht zufällig gerade auch im Browser die ganze Zeit aufgehabt hätte. Ich bin wohl wirklich blind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz