gpt4 book ai didi

c++ - SDL IMG_loadTexture等硬盘

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:46:41 24 4
gpt4 key购买 nike

我最近开始使用 SDL2 和 C++ 编写一个小程序。在这个程序中,我使用了 IMG_LoadTexture() 来加载纹理,但是它不想工作,程序找不到图像。所以我碰巧我的程序使用了 SDL_loadBMP(),但没有成功。经过几个小时无休止地寻找错误,我仍然找不到任何东西。

当我开始我的项目时,我将它保存到我的 D: 磁盘,而不是我的 C: 磁盘。因此,当我准备放弃整个项目时,我将我的 exe、图像和库复制到我的 C: 磁盘,然后 Boom 成功了。

所以我不知道为什么会这样。我用相对路径引用我的图像,但它不想在我的 D: 磁盘上工作。这是一个错误吗?或者它可能与我的磁盘相关的设置有关?我怎样才能让它在我的 D: 磁盘上运行?

附言我正在使用 Windows 7
附言对于任何可怕的语法和拼写错误,我提前表示歉意。

最佳答案

您的可执行文件的工作目录是否与您假设的相同?在 Windows 上不止一次发生工作目录不是我认为的路径。对于某些编译器配置,工作目录与可执行文件所在的目录不同,您必须更改工作目录,查看您的 IDE 文档。

我经常发生的事

当前工作方向

D:/projectdir/

预期工作方向

D:/projectdir/bin/debug/

文件的真实位置:

D:/projectdir/bin/debug/app.exe
D:/projectdir/bin/debug/texture.png

应用程序从 IDE 启动时尝试加载哪些文件:

D:/projectdir/app.exe
D:/projectdir/texture.png

您可以通过在 Windows 上调用等效项来快速测试当前工作目录getcwd(来自 here 的回答)

#include <WinBase.h>

int main() {
TCHAR pwd[MAX_PATH];
GetCurrentDirectory(MAX_PATH,pwd);
MessageBox(NULL,pwd,pwd,0);
}

关于c++ - SDL IMG_loadTexture等硬盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21144991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com