D3DX10CreateTextureFromFile返回未知错误

时间:2016-04-02 20:43:42

标签: c++ directx-10

好的,首先是问题代码:

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

问题是我无法获得D3Dx10CreateTextureFromFile来创建有效的纹理。我得到的唯一错误是“未知错误0x88790002”,所以我不能自己解决这个问题。我搜索过,找不到相关的东西。

pD3DDevice是经过验证的有效D3D10设备。如果我注释掉D3Dx10CreateTextureFromFile行,其他一切工作正常。

我是directx的新手,所以感谢任何帮助。

PS我确实拥有所需的.h和.lib文件。

1 个答案:

答案 0 :(得分:0)

旧的DirectX错误查找实用程序说HRESULT 0x88790002为D3D10_ERROR_FILE_NOT_FOUND。尝试使用L"..\\test.bmp";作为文件名,并仔细检查当前工作目录是否符合预期。

  

请注意,此时根本没有理由使用Direct3D 10。您应该使用DirectX 11.不推荐使用D3DX9,D3DX10和D3DX11,它们只在旧版DirectX SDK中使用。见MSDN。您应该考虑使用众多开源replacements中的一个用于旧版D3DX10。

相关问题