Главная страница
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.019 c
4-56403
Dest
2002-08-31 10:09
2002.10.17
Иконка в чужом exe


1-56120
AndreyAG
2002-10-09 10:27
2002.10.17
Графики


1-56133
Dmitriy _need the help
2002-10-05 23:52
2002.10.17
ловушка


1-56206
Supra
2002-10-07 00:40
2002.10.17
Вопрос по ЛистБоксу


6-56253
Novichek
2002-08-15 16:45
2002.10.17
Отправка писем