我真的有两个问题。D3DXCompile在Visual Studio外运行时出现奇怪的错误
第一个是对事件的更多描述:软件使用DirectX 9并在资源启动时编译着色器。当您在IDE中运行软件时,着色器可以很好地进行调试和发布版本的编译,但是当您双击它以独立运行时,您会从D3DXCompileShader中获得许多奇怪的错误。
我已经把它放到了Visual Studio已经将着色器文本文件转换为Unicode的可能性,并且这是以某种方式抛出D3DXCompileShader。为什么他们在IDE中编译并运行正常,但不在它之外是个谜(注意,如果你在VS之外启动它,然后将调试器附加到进程中,它仍然会失败)。任何人对此有任何想法?
我的第二个问题涉及到尝试解决上述问题。我没有使用自己的资源数据类型SHADER,而是将着色器导入为RCDATA,因此我现在无需手动从资源加载着色器文本,而是可以使用D3DXCompileShaderFromResource。然而,我从我的电话中收到了一个不好的HRESULT,但'错误'集合仍然是空的。它根本没有调试输出。代码如下所示:
HRESULT result;
result = D3DXCompileShaderFromResource(0,
MAKEINTRESOURCE(IDR_SHADERPHONG),
NULL,
NULL,
"VERTEXMAIN",
D3DXGetVertexShaderProfile(Window()->GetDevice()),
D3DXSHADER_OPTIMIZATION_LEVEL3,
&MyVertexShaderBuffer,
&errors,
&MyVertexShaderConstants);
HRESULT是-2005529767,这似乎是“失败”。我无法找到关于D3DXCompileShaderFromResource相关内容的参考资料!
我希望我的聪明的朋友在stackoverflow可以在这里提供一些援助:页。谢谢。