![]() |
![]() ![]() ![]() ![]() |
|
Получение списка экспорта dllDelphi , Файловая система , DLL и PlugIns
Автор: Mystic
{ **** UBPFD *********** by delphibase.endimus.com ****
>>
Функция 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('Произошла ошибка');
Это код-набор на Delphi, демонстрирующий, как получить список экспортированных функций из динамической связки библиотеки (DLL). Функция Разбивка кода:
Пример использования в конце кода-набора демонстрирует, как вызвать функцию Функция GetImageFunctionList позволяет получать список экспортируемых функций из динамической библиотеки (DLL) и является полезной для работы с WinAPI. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: DLL и PlugIns ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||