Visual Studio, кажется, не думает, что компилируется в 64-битной - PullRequest
0 голосов
/ 09 марта 2012

Итак, я пытаюсь скомпилировать проект в 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 ]

3 голосов
/ 09 марта 2012

Макросы, на которые вы должны смотреть: _WIN64 (или, по крайней мере, _M_X64), взятые из здесь

2 голосов
/ 09 марта 2012

Насколько я могу судить, WIN_X64 не является предопределенным символом в 64-битных сборках. Глядя на список предопределенных символов в VS2010 , вы, вероятно, должны вместо этого использовать _M_AMD64 или _M_X64. Также есть _WIN64, который также будет установлен на всех 64-битных архитектурах, а не только на x64.

1 голос
/ 09 марта 2012

Вы должны использовать _WIN64 или _M_X64

...