extern "C"
{
__declspec(dllexport) LRESULT CALLBACK MTest
}
使用 depends ,我发现即使使用 extern "C"
仍然存在名称重整。
最佳答案
使用 __declspec(dllexport) 获得真正未修饰的名称的唯一方法是使用 __cdecl 调用约定导出它们。 CALLBACK 变为 __stdcall,它使用前导 _ 和尾随 @bytes 修饰名称的“C”形式。
否则您可以使用 .DEF 文件,这很麻烦。另一种 MSVC 特定方法是嵌入/EXPORT指令进入目标文件(或将其作为显式链接器设置传递)
#pragma comment(linker, "/EXPORT:ExportSymbol=DecoratedName");
由于某些原因,指令的 =
部分未在帮助中列出
关于windows - 为什么 extern "C"在以下情况下仍然无法删除名称修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5448483/