gpt4 book ai didi

c++ - 将 C++ 函数名称打印到 C 中,无需修饰

转载 作者:搜寻专家 更新时间:2023-10-31 00:52:47 24 4
gpt4 key购买 nike

我正在尝试构建一个 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

关于c++ - 将 C++ 函数名称打印到 C 中,无需修饰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50707078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com