Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];

Вниз

Хай! Кто-нить знает, как узнать, какие функции есть в dll-ках?   Найти похожие ветки 

 
Лёха   (2002-04-15 16:17) [0]

Здравствуйте! Если кто-нибудьь знает, как узнать, какие функции и процедуры содержаться в dll-ках, пожалуйста ответьте!
Заранее спасибо!


 
watcher   (2002-04-15 17:37) [1]

Search for

Peering Inside the PE: A Tour of the Win32 Portable Executable File Format

in MSDN


 
Anatoly Podgoretsky   (2002-04-15 17:44) [2]

TDump


 
Севостьянов Игорь   (2002-04-16 13:07) [3]

У меня вот есть Dependency Walker for Win32 v. 1.0
от MS и функции показывает и связи с другими DLL и не только для DLL, но и OCX, EXE...


 
Iluxa   (2002-04-16 15:59) [4]

depends.exe


 
s.ts   (2002-04-16 19:46) [5]

Gexperts


 
KirilAlex   (2002-04-16 22:29) [6]

Проще всего использовать Виндовский "Быстрый просмотр",
правда увидеть можно только названия ф-ций.


 
Вольный Стрелок   (2002-04-17 11:22) [7]

а так, чтоб с указанием параметров?
не названий и смысла, конечно :))
Хоть количество их и тип. И возвращаемых значений.


 
drpass   (2002-04-17 12:02) [8]

Параметры увидеть не удастся - этой информации просто нет в dll. Для описания параметров и придуманы заголовочные файлы и SDK


 
Mystic   (2002-04-17 13:13) [9]

Список функций можно получить, например, так:


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;

Handle := LoadLibrary(PChar(FileName));
if Handle = 0 then Exit;

try

if not SymLoadModule(hProcess, 0, PChar(FileName), nil, Handle, 0) then Exit;
if not SymEnumerateSymbols(hProcess, Handle, EnumSymbols, Strings) then Exit;

finally
FreeLibrary(Handle);
end;
end;


(тестировал только на NT4


 
Mystic   (2002-04-17 13:24) [10]

Исправляю ряд неточностей в моем предыдущем постинге:

1) Каждому вызову SysInitialize должн соответствовать вызов SysCleanup.

2) Каждому вызову SymLoadModule должен соответствовать вызов SymUnloadModule

3) Надо подключить модуль ImageHlp

С уважением, Мистик.

P. S.

4)

> »» Перемещено из конференции "Работа с системой и железом"


Странно, по-моему это вопрос по API... А ветку "Работа с системой и железом" я вообще не заглядую.


 
Poirot   (2002-04-17 20:05) [11]

А можно ещё одно.... В IDA можно посмотреть параметры функций,но что-то я им недоверяю... Дельфийскую библиотечку (ДЛЛ) она не правильно распознала и не дала параметры... скорее всего она будет работать грамотно с ДЛЛ на С...
И встречный вопрос... а как отловить ошибку, которая при вызове функции в одной ДЛЛ вызывает её в другой...



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
1-88466
Демон
2002-05-17 14:06
2002.05.27
Как отключить СИДЮК и ФЛОПАК????


3-88367
Георгинчик
2002-05-02 14:02
2002.05.27
Подскажите, как ускорить следующую операцию. Копирую изтаблицы


6-88572
Di_wind
2002-03-16 17:34
2002.05.27
Indy.


1-88500
kserg@ukr.net
2002-05-13 18:08
2002.05.27
Кто работал с компонентом TAdvStringGrid ?


14-88635
lel
2002-04-16 16:36
2002.05.27
Великое событие, СМЕРТЕЛЬНАЯ БИТВА





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский