0

所以我试图在 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;

显然,这些本身就很好,所以它必须是别的东西。我的项目中导致此问题的文件仅包括

有任何想法吗?

4

1 回答 1

3

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

#undef FLOAT
#undef DOUBLE

在包括windows.hwindef.h直接负责警告的任何文件之前。

于 2010-06-29T16:34:26.903 回答