Соглашение об именах «Экспорт» - как оно работает? - PullRequest
0 голосов
/ 21 ноября 2008

Какие правила применяются к имени, которое заканчивается в разделе экспорта PE (Portable Executable)? Грубо говоря, я вижу имена, начинающиеся с подчеркивания «_», «?» знак вопроса или знак "@". Что они означают, а как насчет остальной части названия?

Также - Как я могу превратить соглашение об именах во что-то более полезное?

Ответы [ 3 ]

3 голосов
/ 21 ноября 2008

Я думаю, что вы ссылаетесь на "dll name mangling"

имя искажение

Используется, чтобы убедиться, что имена экспорта уникальны

Вы можете указать файл .def, который потом будет проще использовать

Проще говоря, файл .def - это просто текстовый файл, содержащий следующую структуру

LIBRARY "MyDll"

EXPORTS
    exportFunction1
1 голос
/ 25 ноября 2008

Еще одна вещь: Jcl содержит еще одну очень полезную функцию для декодирования этих символов. Вы можете найти его в JclPeImage; Он называется PeUnmangleName - расширение WinAPI UndecorateSymbolNameA / W.

0 голосов
/ 21 ноября 2008

Я должен был выглядеть немного дольше, прежде чем спрашивать об этом - поскольку я только что нашел ответ на это:

Это называется 'искажение имени', и вот ссылка, объясняющая немного об этом: http://en.wikipedia.org/wiki/Name_mangling

Мои извинения за то, что беспокою вас; Ура! * * 1006

...