我真的有兩個問題。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可以在這裏提供一些援助:頁。謝謝。