2016-04-02 16 views
0

OK, in erster Linie ist hier das Problem Code:D3DX10CreateTextureFromFile kehrt unbekannten Fehler

D3DX10_IMAGE_LOAD_INFO loadInfo; 
ZeroMemory(&loadInfo, sizeof(D3DX10_IMAGE_LOAD_INFO)); 
loadInfo.BindFlags = D3D10_BIND_SHADER_RESOURCE; 

ID3D10Resource *texture = NULL; 
LPCWSTR imageFile = L"../test.bmp"; 
D3DX10CreateTextureFromFile(pD3DDevice, imageFile, &loadInfo, NULL, &texture, &hr); 

if (hr != S_OK) 
{ 
    _com_error err(hr); 
    LPCTSTR errMsg = err.ErrorMessage(); 
    MessageBox(mHwnd, errMsg, L"Error", MB_OK | MB_ICONEXCLAMATION); return false; 
} 

Das Problem ist, ich kann nicht D3Dx10CreateTextureFromFile eine gültige Textur erstellen bekommen. Der einzige Fehler, den ich bekomme, ist "Unbekannter Fehler 0x88790002", also kann ich das nicht alleine herausfinden. Ich habe gesucht und konnte nichts Relevantes finden.

pD3DDevice ist ein gültiges und getestetes D3D10-Gerät. Wenn ich die D3Dx10CreateTextureFromFile-Zeile auskommentiere, funktioniert alles andere gut.

Ich bin neu bei directx, so dass jede Hilfe geschätzt wird.

PS Ich habe die erforderlichen .h und .lib-Dateien.

Antwort

0

Das alte DirectX-Fehler-Lookup-Dienstprogramm sagt HRESULT 0x88790002 ist D3D10_ERROR_FILE_NOT_FOUND. Versuchen Sie es mit L"..\\test.bmp"; für den Dateinamen und überprüfen Sie, ob das aktuelle Arbeitsverzeichnis das ist, was Sie erwarten.

Beachten Sie, dass es an diesem Punkt sehr wenig Grund gibt, Direct3D 10 überhaupt zu verwenden. Sie sollten DirectX 11 verwenden. D3DX9, D3DX10 und D3DX11 sind veraltet und befinden sich nur im älteren DirectX-SDK. Siehe MSDN. Sie sollten einen der vielen Open Source replacements für Legacy D3DX10 betrachten.

Verwandte Themen