Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
CD-ROM [11]
DLL и PlugIns [75]
Help файлы [20]
INI файлы [16]
RS232 [2]
Активные директории [1]
Директории [0]
Диски [0]
Корзина [5]
Порты [26]
Ресурсы [0]
Файлы [0]
Форматы файлов [15]
Ярлыки [0]

Наш опрос
Есть ли у Вас свой сайт?
Всего ответов: 48

Статистика

Онлайн всего: 5
Гостей: 5
Пользователей: 0

Форма входа

Главная » Статьи » Файловая система » DLL и PlugIns

Получение списка экспорта dll
{ **** 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 и PlugIns | Добавил: Skinner (07.07.2008)
Просмотров: 405 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz