Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ **** UBPFD *********** by delphibase.endimus.com **** >> Получение списка экспорта dll Функция GetImageFunctionList возвращает список всех экспортируемых функций dll FileName - имя dll Strings - объетк, в который будут занесен список экспорта. ВАЖНО! Тестировано только под NT4 Зависимости: Windows, ImageHlp Автор: Mystic, mystic2000@newmail.ru, ICQ:125905046, Харьков Copyright: Mystic Дата: 21 апреля 2002 г. ***************************************************** } functionEnumSymbols(SymbolName: PChar; SymbolAddress, SymbolSize: ULONG; Strings: Pointer): Bool; stdcall
; begin
TStrings(Strings).Add(SymbolName); Result := True; end
; function
GetImageFunctionList(const
FileName: string
; Strings: TStrings): Boolean; var
Handle: THandle; hProcess: THandle; VersionInfo: TOSVersionInfo; begin
Strings.Clear; Result := False; SymSetOptions(SYMOPT_UNDNAME or
SYMOPT_DEFERRED_LOADS); VersionInfo.dwOSVersionInfoSize := SizeOf(VersionInfo); if
not
GetVersionEx(VersionInfo) then
Exit; if
VersionInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then
hProcess := GetCurrentProcessId else
hProcess := GetCurrentProcess; if
not
SymInitialize(hProcess, nil
, True) then
Exit; try
Handle := LoadLibrary(PChar(FileName)); if
Handle = 0 then
Exit; try
if
not
SymLoadModule(hProcess, 0, PChar(FileName), nil
, Handle, 0) then
Exit; try
if
not
SymEnumerateSymbols(hProcess, Handle, EnumSymbols, Strings) then
Exit; finally
SymUnloadModule(hProcess, Handle); end
; finally
FreeLibrary(Handle); end
; finally
SymCleanup(hProcess); end
; Result := True; end
;
Пример использования:
ifnot
GetImageFunctionList('kernel32.dll', ListBox1.Items) then
raise
Exception.Create('Произошла ошибка');