我有一段代码,其中有以下代码行。
#pragma comment(linker, "/include:_test@12")
当我使用32位的C++Visual Studio 2010配置类型来编译代码时,使用该代码的项目正常工作(我也在一台32位的Windows机器上)。
当我将机器更改为64位并使用x64配置,用C++ Visual Studio 2010编译时,出现链接错误。
32位和64位的C++名称修饰不同吗?如果是这样,我在哪里可以找到64位C++名称修饰约定?
vectorcall
和默认的x64调用约定(从网上查到的信息来看,这似乎是fastcall
的一个版本)。因此,在编译为64位时,__cdecl
、__stdcall
、__fastcall
和__thiscall
都会被忽略。 - Justin Time - Reinstate Monica