Сборка в 64-битной Windows на VS2008 дает ошибку C2632 - PullRequest
0 голосов
/ 29 июня 2010

Итак, я пытаюсь создать 32-битное приложение в 64-х. Я подключаюсь ко всем 64-битным библиотекам и перекомпилировал все, что мы использовали для 64-битных.

Я получаю странные ошибки сейчас.Я видел некоторые похожие ошибки в сети, но ничего полезного в этих темах не было.

Есть идеи, что может быть не так, что вызывает такое поведение?

предупреждение C4091: 'typedef': игнорируется слева от'float', когда не объявлено ни одной переменной C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ include \ windef.h error C2632: «float», за которым следует «double», недопустимо
C: \ Program Files \MicrosoftSDKs \ Windows \ v6.0A \ include \ windef.h

предупреждение C4091: 'typedef': игнорируется слева от 'double', когда не объявлена ​​переменная C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ include \ wtypes.h Ошибка 44 ошибка C2632: «double», за которым следует «double», недопустимо
C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ include \ wtypes.h

Предупреждение и ошибка для одной и той же строки.Ясно, что это не проблема с wtypes.h и windef.h (и если это так, я ничего не могу с этим поделать)

typedef float               FLOAT;

typedef double DOUBLE;

Ясно, что все в порядке, так что это должно быть что-то другое.Файл в моем проекте, который вызывает это просто включает

Есть идеи?

1 Ответ

2 голосов
/ 29 июня 2010

Похоже, FLOAT и DOUBLE ранее были #define d до double. Это может быть результатом другой библиотеки, хотя вряд ли это может быть вызвано переключением на 64-битную компиляцию. Попробуйте сделать

#undef FLOAT
#undef DOUBLE

До включения windows.h или windef.h или любого другого файла, который непосредственно отвечает за предупреждение.

...