【发布时间】:2014-02-08 23:27:50
【问题描述】:
使用 VC++,在调试模式下,一切正常。但是当我创建一个 Release 时,它不会加载图像,可能是因为文件名损坏。
代码如下:
Pozadi.loadFromFile("gfx/splash.png");
它给了我这个错误:
Failed to load image "splash.png \♫" Reason: Unable to open file
还有一些图片给了我更奇怪的文件名,比如完全损坏的路径名。
知道可能是什么原因吗?
谢谢
【问题讨论】:
-
请向我们展示
loadFromFile()的实现 -
我可能误解了您的回答,但 loadFromFile() 是 SFML 库定义的 sf::Texture 类的方法。
-
是的,但是如果不知道这个方法到底是做什么的(逐行),我们无法帮助您,否则您为什么不尝试附加调试器?
-
好在 SFML 是开源的。我在它的源代码中找到了这三个函数,它们相互使用以从文件中加载图像:pastebin.com/ZaupPajP
-
我无法想象是什么导致了名称损坏,因为根据该源代码,它只是通过 const 引用直接转发字符串。但从程序的角度来看,这些在不同配置上的打开失败通常与工作目录有关。尝试使用
std::ifstream打开同一个文件,成功了吗?或者更确切地说,它是否在与调用loadFromFile相同的条件下成功和失败?