c++ - 如何在 DirectX 上加载纹理?

标签 c++ visual-c++ directx

我使用此代码加载纹理:

HRESULT hr = D3DXCreateTextureFromFile(d3ddev, "test.bmp", &g_texture);

但它总是返回D3DXERR_INVALIDDATA错误!

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

我错过了什么?该文件肯定存在。我也尝试过使用 jpg 和 png,以及尺寸为 256x256 的较小图像。该图像对我来说效果很好......所以它不能是无效数据,即使它是这么说的。

最佳答案

最有可能的是,即使该文件可用,但它并不位于程序访问的正确路径中。

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

您可以通过代码 GetCurrentDirectory 检查当前目录.

关于c++ - 如何在 DirectX 上加载纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8782834/

相关文章:

c# - 无法将 c# .Net Core 3.0 与 directx 9.0 依赖项链接起来

Delphi - GLScene如何获取拾取对象的x,y,z

c++ - 如何查找字符串中两个连续空格的位置

c++ - 与 C++ Exception throw 语句混淆

windows - 是否可以找到 DLL 中声明的结构的大小?

c++ - 在书中的示例代码 "introduction to 3d game programming with directx 11"

c++ - c++中int数组周围的堆栈损坏错误

c++ - 无法在 Eclipse 中创建 C++ 项目

c++ - 更改 MAC 地址,通过注册表不起作用

c++ - 使用 strcpy_s 复制字符串