4

我目前正在学习 SFML,我的程序中有这段代码:

if (!texture.loadFromFile("Textures/plane.png"))
{
    std::cout << "Error loading texture plane.png" << std::endl;
}

我在与可执行文件位于同一文件夹中的文件夹 Textures 中有文件 plane.png。当我通过 Windows 资源管理器运行可执行文件时,纹理加载没有任何问题,但是当我在 VS 中作为调试运行它时,我得到以下输出:

  Failed to load image "Textures/plane.png". Reason: Unable to open file
  Error loading texture plane.png

第一行来自 SFML,第二行来自我的程序。

有没有办法来解决这个问题?我还尝试将纹理文件夹放在项目根文件夹中的几个不同位置,但没有变化。

4

1 回答 1

8

尝试这个。转到项目配置属性。查看调试选项卡。应该有一个“工作目录”字段。工作目录可能与可执行文件所在的目录不同。您可以将工作目录更改为与您在 Windows 资源管理器中运行可执行文件的目录相同,以便可执行文件能够使用相同的相对路径找到文件。

(注意:我使用的是 VS 2010,因此选项的确切名称等可能会有所不同)。

于 2013-07-22T15:58:05.907 回答