我有一个使用SharpDX 2.5.0的C#项目,一切正常。 我转到SharpDX的最新稳定版本2.6.2。我的项目编译正常,但在运行时失败,因为它无法编译着色器。我使用这行代码:
var vertexShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "Base_VS", "vs_4_0");
无论着色器文件的实际内容是什么,它都会失败,并显示以下错误:
path/to/my/shader.hlsl(1,1): error X3000: Illegal character in shader file
我认为它与文件的UTF-8编码有关,但尝试各种编码并没有解决问题。 还有其他人遇到类似的问题或有建议吗?
答案 0 :(得分:5)
它已经过时了,但无论如何我都会回应: 新的visual studio文本文件的默认编码是带BOM的UTF-8。这意味着你文件的前3个字符是 这些角色是“非法的”
答案 1 :(得分:3)
我终于找到了解决方案。 如果有人遇到相同的情况,我找到了解决方法: