我下载了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;
答案 0 :(得分:2)
当您更改文件编码时,我相信您将其更改为“宽字符”(UTF-16)。这会为每个字符创建一个16位值。大多数US-ASCII的宽字符表示的第一个字符是零。这可以解释为什么你的源代码中有很多“零”错误。编译器需要8位字符。