Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.17;
Скачать: CL | DM;

Вниз

Как получить список имен процедур DLL   Найти похожие ветки 

 
Севостьянов Игорь ©   (2002-09-04 22:33) [0]

Как получить список имен процедур DLL, например, так как это делает Dependency Walker от MS ( http://www.dependencywalker.com/)?


 
Anatoly Podgoretsky ©   (2002-09-04 22:34) [1]

TDump


 
Севостьянов Игорь ©   (2002-09-04 22:36) [2]

Нет - мне надо ... программно ...


 
ggrisha ©   (2002-09-05 09:36) [3]

Посмотри на http://www.firststeps.ru/ там был готовый пример правда на с++


 
Игорь Шевченко ©   (2002-09-05 10:46) [4]

Севостьянов Игорь © (04.09.02 22:36)


> Нет - мне надо ... программно ...

Можно глупый вопрос - зачем ?


 
Толик ©   (2002-09-05 11:08) [5]

http://delphibase.endimus.ru/?action=viewfunc&topic=filedll&index=1


 
Севостьянов Игорь ©   (2002-09-05 11:24) [6]

>>ggrisha © (05.09.02 09:36)
Спасибо - Попробую найти

>>Игорь Шевченко © (05.09.02 10:46)
Можно глупый вопрос - зачем ?

Понимаешь есть такие имена процедур в dll или bpl не важно
@Borlndmm@SysGetMem$qqri
Так вот мне хочется разобраться с тем как получить список (универсальность мать его так) я не знаю как она будет обзыватся после компиляции пакета Delphi

Ну а дальше разбираться в получении нормальных имен функций

таких как в данном примере SysGetMem


Q: How do I view the parameter and return types of a function?

A: For most functions, this information is simply not present in the module. The Windows’ module file format only provides a single text string to identify each function. There is no structured way to list the number of parameters, the parameter types, or the return type. However, some languages do something called function "decoration" or "mangling", which is the process of encoding information into the text string. For example, a function like int Foo(int, int) encoded with simple decoration might be exported as _Foo@8. The 8 refers to the number of bytes used by the parameters. If C++ decoration is used, the function would be exported as ?Foo@@YGHHH@Z, which can be directly decoded back to the function"s original prototype: int Foo(int, int). Dependency Walker supports C++ undecoration by using the "Undecorate C++ Functions Command".


 
Севостьянов Игорь ©   (2002-09-05 11:33) [7]

>>Толик © (05.09.02 11:08)

Спасибо это вроде оно...

Еще идеи есть ?


 
Игорь Шевченко ©   (2002-09-05 12:38) [8]

Если объявить
exports
имя_процедуры

в пакете, то ее имя будет без всяких изменений.

А для того, чтобы провести undecoration (или demangling) имени, можно воспользоваться tdump, который показывает преобразованные имена. В инете была программа по преобразованию имен, где-то на сайте borland. Точных координат не помню.

С уважением,


 
Севостьянов Игорь ©   (2002-09-05 13:22) [9]

Мне как и надо программно (после получения списка) получить
корявые названия и нормальные

undecoration name = normal name

Грубо говоря, я знаю нормальное название, но не знаю как оно будет выглядеть в "корявом" виде... Каждый раз заглядывать в TDump не "универсально"



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

Текущий архив: 2002.10.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
3-55997
maxim2
2002-09-26 12:37
2002.10.17
Как использовать функцию SQL Sum


14-56291
AL2002
2002-09-23 16:21
2002.10.17
С винтом чё-то не так.


1-56171
Ryser
2002-10-07 14:36
2002.10.17
String <-> Pchar


4-56401
Macfroid
2002-09-03 20:42
2002.10.17
Как? Чтоб без вопросов!


7-56364
zx
2002-08-09 12:34
2002.10.17
ver. MDAC?