为什么extern"C"仍然无法在以下情况下删除名称修改

use*_*949 4 windows winapi visual-c++ name-decoration

extern "C"
{
__declspec(dllexport) LRESULT CALLBACK MTest
}
Run Code Online (Sandbox Code Playgroud)

使用依赖,我发现即使使用仍然存在名称错误extern "C".

Chr*_*cke 7

使用__declspec(dllexport)获取真正未修饰的名称的唯一方法是使用__cdecl调用约定导出它们.CALLBACK变为__stdcall,它使用前导_和尾随@bytes来装饰名称的"C"形式.

否则你可以使用.DEF文件,这很痛苦.另一种特定于MSVC的方法是将/ EXPORT指令嵌入到目标文件中(或将其作为显式链接器设置传递)

#pragma comment(linker, "/EXPORT:ExportSymbol=DecoratedName");
Run Code Online (Sandbox Code Playgroud)

由于某种原因=,该指令的部分未在帮助中列出