Получение списка экспорта dllDelphi , Файловая система , DLL и PlugInsПолучение списка экспорта dll
Автор: Mystic { **** UBPFD *********** by delphibase.endimus.com **** >> Получение списка экспорта dll Функция GetImageFunctionList возвращает список всех экспортируемых функций dll FileName - имя dll Strings - объетк, в который будут занесен список экспорта. ВАЖНО! Тестировано только под NT4 Зависимости: Windows, ImageHlp Автор: Mystic, mystic2000@newmail.ru, ICQ:125905046, Харьков Copyright: Mystic Дата: 21 апреля 2002 г. ***************************************************** } function EnumSymbols(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; Пример использования: if not GetImageFunctionList('kernel32.dll', ListBox1.Items) then raise Exception.Create('Произошла ошибка'); Статья Получение списка экспорта dll раздела Файловая система DLL и PlugIns может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: DLL и PlugIns ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |