将C++函数名称打印为 C,无需修饰

Print C++ function name to C without decoration

本文关键字:函数 C++ 打印      更新时间:2023-10-16

我正在尝试构建一个DLL。我被告知首先使用

../debug>dumpbin /exports demo.dll

以下是我的C++代码

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

以下是我的def文件

LIBRARY 
EXPORTS
Foo

我希望将函数名称打印为

ordinal hint RVA      name
1    0 00011212 Foo = Foo

相反,我看到:

ordinal hint RVA      name
1    0 00011212 Foo = @ILT+525(Foo)

如何禁用修饰/装饰?

我见过解决方案在链接器中禁用"调试信息"的问题。我不想那样做。我是C++的新手,所以知识渊博。任何帮助将不胜感激。谢谢!

这里没有C++名称的篡改。从 DLL 导出的函数称为Foo

@ILT语法是指增量链接中使用的一种间接调用形式(ILT 代表"增量链接表",数字标识该表中的插槽(:

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