Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在DirectX上加载纹理?_C++_Visual C++_Directx - Fatal编程技术网

C++ 如何在DirectX上加载纹理?

C++ 如何在DirectX上加载纹理?,c++,visual-c++,directx,C++,Visual C++,Directx,Im使用以下代码加载纹理: HRESULT hr = D3DXCreateTextureFromFile(d3ddev, "test.bmp", &g_texture); 但它总是返回D3DXERR\u INVALIDDATAerror 我正在渲染的三角形工作得很好,所以程序的其余部分工作正常,除了纹理加载 我错过了什么?该文件确实存在。我也尝试了jpg和png,以及尺寸为256x256的较小图像。这张照片对我很合适。。因此,它不能是无效数据,即使它这么说。最有可能的是,即使文件可用,

Im使用以下代码加载纹理:

HRESULT hr = D3DXCreateTextureFromFile(d3ddev, "test.bmp", &g_texture);
但它总是返回
D3DXERR\u INVALIDDATA
error

我正在渲染的三角形工作得很好,所以程序的其余部分工作正常,除了纹理加载


我错过了什么?该文件确实存在。我也尝试了jpg和png,以及尺寸为256x256的较小图像。这张照片对我很合适。。因此,它不能是无效数据,即使它这么说。

最有可能的是,即使文件可用,它也不在程序访问的正确路径中

如果您是从Visual Studio中运行程序,请确保工作目录指向包含您的
test.bmp
的文件夹。不幸的是,此设置的位置在不同版本的VS之间变化很大,但在VS2005中,它是
Project->Properties->debug->Working Directory
。确保调试模式和发布模式的设置相同


您可以使用代码检查当前目录。

太棒了!就这样。这可能节省了我几个小时的调试时间!谢谢