Nde*_*ech 3 c# directx hlsl directx-11 sharpdx
我有一个使用SharpDX 2.5.0的C#项目,一切都运行正常.我转到SharpDX的最新稳定版本2.6.2.我的项目编译正常,但在运行时失败,因为它无法编译着色器.我正在使用这行代码:
var vertexShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "Base_VS", "vs_4_0");
Run Code Online (Sandbox Code Playgroud)
无论着色器文件的实际内容是什么,它都会失败并出现以下错误:
path/to/my/shader.hlsl(1,1): error X3000: Illegal character in shader file
Run Code Online (Sandbox Code Playgroud)
我认为它与文件的UTF-8编码有关,但尝试各种编码并没有解决问题.有没有其他人遇到类似的问题或有建议?
它已经过时了,但无论如何我都会回复:新的visual studio文本文件的默认编码是带有BOM的UTF-8.这意味着您文件的前3个字符是
这些字符是"非法的"
资料来源:http:
//en.wikipedia.org/wiki/Byte_order_mark#UTF-8