所以我试图在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;
显然,这些都很好,所以它必须是别的东西。
我的项目中导致此文件的文件只包括
有什么想法吗?
答案 0 :(得分:2)
看起来FLOAT
和DOUBLE
之前是#define
d到double
。这可能是另一个库的结果,尽管它似乎不太可能是由切换到64位编译引起的。尝试做
#undef FLOAT
#undef DOUBLE
在加入windows.h
或windef.h
或任何直接负责警告的文件之前。