3

我尝试将所有图像资源合并到一个名为 resource 的文件夹中。因此,将图像路径设置为“resource/”,但我的 directX 框架仅在我在 VS 2010 上编译时才有效。如果我从调试文件夹运行,它将无法运行。(我已经将所有图像资源复制到调试文件夹)

http://i.stack.imgur.com/Shyj7.png

string folder = "resource/";

void setTexture(LPDIRECT3DTEXTURE9& texture, string imgName, int imgWidth, int imgHeight, D3DCOLOR TransparentColorKey)
{
    string path;

    path = folder + imgName;

    //  Create texture.
    hr = D3DXCreateTextureFromFileEx(d3dDevice, path.c_str(), imgWidth, imgHeight, 
        D3DX_DEFAULT, NULL, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, 
        D3DX_DEFAULT, D3DX_DEFAULT, TransparentColorKey, NULL, NULL, &texture);
}
4

2 回答 2

2

从 Visual Studio 调试时的默认工作目录是项目目录,而不是可执行文件所在的目录。在应用程序中使用相对路径时,您必须考虑这一点并更改设置。

于 2013-07-13T14:16:55.257 回答
0

定义相对于您的项目解决方案文件 ( yourProjectName.sln ) 位置的目录“资源”的相对路径,而不是相对于您的.exe文件位置。

于 2014-03-14T13:53:03.743 回答