Получить экспортируемые из DLL функцииDelphi , Файловая система , DLL и PlugInsПолучить экспортируемые из DLL функции
Оформил: DeeCo uses ImageHlp; procedure 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; procedure TForm1.Button1Click(Sender: TObject); var List: TStrings; i: Integer; s: string; begin List := TStringList.Create; try ListDLLExports('C:\WINDOWS\SYSTEM32\browseui.dll', List); ShowMessage(IntToStr(list.Count) + ' functions in dll'); s := 'List of functions:'; for i := 0 to List.Count - 1 do s := s + #13#10+List[i]; ShowMessage(S); finally List.Free end; end; Программа на Delphi для списка экспортированных функций из файла DLL (Dynamic Link Library). Вот подробное описание, что код делает: Процедура ListDLLExports Эта процедура принимает два параметра: Продcedure использует несколько переменных для хранения указателей на различные структуры в файле DLL:
Продcedure выполняет следующие действия:
Процедура Button1Click Эта процедура является обработчиком события нажатия кнопки на форме (
Код довольно прост и использует различные функции из единицы В статье описывается пример программного кода на языке Delphi, который позволяет получить список экспортируемых из DLL-файла функций и отобразить его в сообщении. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: DLL и PlugIns ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |