D3DX10CreateTextureFromFile返回未知错误



好的,首先是问题代码:

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文件。

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

请注意,在这一点上,几乎没有理由使用Direct3D10。您应该使用DirectX 11。D3DX9、D3DX10和D3DX11已弃用,并且仅在旧版DirectX SDK中。请参阅MSDN。您应该考虑使用多种开源替代品中的一种来替代传统的D3DX10。

最新更新