Вывести имя функции C ++ в C без оформления - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь построить DLL.Мне сказали сначала распечатать имя функции, используя

../debug>dumpbin /exports demo.dll

Ниже приведен мой код C ++

extern "C" __declspec(dllexport) void __cdecl Foo() {
return;
}

Ниже приведен мой файл определения

LIBRARY 
EXPORTS
Foo

Я хочу, чтобы имя функции было напечатано как

ordinal hint RVA      name

      1    0 00011212 Foo = Foo

Вместо этого я вижу:

ordinal hint RVA      name

      1    0 00011212 Foo = @ILT+525(Foo)

Как отключить искажение / оформление?

Я видел вопросы, когда решением было отключить «отладочную информацию» в компоновщике.Я не хочу этого делать.Я новичок в C ++, поэтому не очень хорошо осведомлен.Любая помощь будет оценена.Спасибо!

1 Ответ

0 голосов
/ 05 июня 2018

Здесь не происходит искажение имени в C ++. Функция, экспортированная из DLL, называется Foo.

Синтаксис @ILT относится к форме косвенного вызова, используемогов инкрементном соединении (ILT означает «Таблица инкрементного соединения», а число идентифицирует слот в этой таблице):

https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/6cd9936a-c516-49e0-ba38-ed391669a69a/disassembly-operand-ilt?forum=vcgeneral

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...