2016-04-02 7 views
0

OK, tout d'abord est ici le code de problème:D3DX10CreateTextureFromFile renvoie une erreur inconnue

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; 
} 

Le problème est que je ne peux pas obtenir D3Dx10CreateTextureFromFile pour créer une texture valide. La seule erreur que je reçois est "Erreur inconnue 0x88790002" donc je ne peux pas vraiment comprendre cela par moi-même. J'ai cherché et je n'ai rien trouvé de pertinent.

pD3DDevice est un périphérique D3D10 valide et testé. Si je commente la ligne D3Dx10CreateTextureFromFile tout le reste fonctionne bien. Je suis nouveau à directx donc toute aide est appréciée. PS Je dispose des fichiers .h et .lib requis.

Répondre

0

L'ancien utilitaire de recherche d'erreur DirectX indique HRESULT 0x88790002 est D3D10_ERROR_FILE_NOT_FOUND. Essayez d'utiliser L"..\\test.bmp"; pour le nom de fichier et vérifiez que le répertoire de travail en cours est ce que vous attendez qu'il soit.

Notez qu'à ce stade, il y a très peu de raison d'utiliser Direct3D 10 du tout. Vous devez utiliser DirectX 11. D3DX9, D3DX10 et D3DX11 sont obsolètes et se trouvent uniquement dans le SDK DirectX hérité. Voir MSDN. Vous devriez regarder en utilisant l'un des nombreux open source replacements pour l'héritage D3DX10.