无效的预处理指令mingw

时间:2014-08-28 19:00:52

标签: c++ gcc compiler-errors mingw codeblocks

我下载了Microsoft DirectX SDK,并尝试使用MingW在Code :: Blocks中打开示例BasicHLSL,在将文件编码更改为unicode并尝试编译后,我得到了一个非常大的数量(500+)的警告,所有人都说&# 34;忽略空字符[默认启用]"所有人都说'#34;无效的预处理指令"然后是#然后是一封信。

真正奇怪的是,错误似乎与代码行不匹配,例如这里有一个错误

C:\Program Files\Microsoft DirectX SDK (June 2010)\Samples\C++\DXUT\Core\DXUT.h Line 15 error: invalid preprocessing directive #d

现在这里是DXUT.h的第14-16行

14 #include "dxsdkver.h"

15 #if ( _DXSDK_PRODUCT_MAJOR < 9 || _DXSDK_BUILD_MAJOR < 1949 )

16 #error The installed DXSDK is out of date.

这是另一个错误

C:\Program Files\Microsoft DirectX SDK (June 2010)\Samples\C++\DXUT\Core\DXUT.h Line 133 error: invalid preprocessing directive #i

以及此处的第132-134行(DXUT.h)

132 D3DDEVTYPE DeviceType;

133 D3DFORMAT AdapterFormat;

134 DWORD BehaviorFlags;

1 个答案:

答案 0 :(得分:2)

当您更改文件编码时,我相信您将其更改为“宽字符”(UTF-16)。这会为每个字符创建一个16位值。大多数US-ASCII的宽字符表示的第一个字符是零。这可以解释为什么你的源代码中有很多“零”错误。编译器需要8位字符。