Visual Studio似乎并不认为它是在64位编译

时间:2012-03-09 09:57:04

标签: c++ visual-studio-2010 64-bit

所以我试图在Visual Studio 2010中编译一个项目,我似乎遇到了编译代码的问题。

我有这段代码

#ifdef WIN_X64  
extern "C" int gainAndFindMax (int cnt,int gain,PSHORT pInput,PSHORT pOutput);
#else
extern "C" int __fastcall gainAndFindMax (int cnt,int gain,PSHORT pInput,PSHORT     pOutput);
 #endif 

这是由同事写的一对汇编函数。  但是,出于某种原因,它会继续编译#else语句,就好像它不是在64位编译一样。 我将我的所有项目设置都设置为64位,但是由于某种原因,它应该都能正确设置  “extern”C“int gainAndFindMax(int cnt,int gain,PSHORT pInput,PSHORT pOutput);”灰显了它似乎没有编译。 帮助将非常有必要

3 个答案:

答案 0 :(得分:3)

您应该查看的_WIN64(或至少_M_X64)来自here

答案 1 :(得分:2)

据我所知,WIN_X64不是64位版本的预定义符号。查看list of predefined symbols in VS2010,您应该使用_M_AMD64_M_X64。还有一个_WIN64也将在所有 64位架构上设置,而不仅仅是x64。

答案 2 :(得分:1)

您应该使用_WIN64_M_X64