所以我试图在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);”灰显了它似乎没有编译。 帮助将非常有必要
答案 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