在VS2008上使用64位Windows构建会出现C2632错误

时间:2010-06-29 16:28:35

标签: c++ visual-studio-2008 build win64

所以我试图在64中构建一个32位应用程序。 我链接到所有64位库,我已经重新编译了我们用于64位的所有内容。

我现在遇到了奇怪的错误。 我在网上看到了一些类似的错误,但在这些主题中没有任何用处。

知道造成这种行为的可能是什么错误吗?

警告C4091:'typedef':当没有声明变量时,忽略'float'的左边 C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ include \ windef.h 错误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 个答案:

答案 0 :(得分:2)

看起来FLOATDOUBLE之前是#define d到double。这可能是另一个库的结果,尽管它似乎不太可能是由切换到64位编译引起的。尝试做

#undef FLOAT
#undef DOUBLE

在加入windows.hwindef.h或任何直接负责警告的文件之前。