我正在尝试通过 SDL_LoadBMP 函数将.bmp文件加载到 Xcode 中的 SDL 项目中。 我尝试将要加载的文件放在项目调试文件夹中,并尝试输入完整的搜索路径,但没有一个有效。By Using SDL_GetError I get the message "Couldn't open hello_world.bmp".
#include <stdio.h>
#include <SDL.h>
int main(){
SDL_LoadBMP("hello_world.bmp");
printf("%sn", SDL_GetError());
SDL_Quit();
return 0;
}
验证后,如果 cpp 函数fopen
或fopen_s
返回nullptr
,但 SDL2 没有显示/使用 fopen 设置的 errno,SDL2"Couldn't open %s", filename
显示消息。
因此,我们可以猜测您没有为 bmp 文件设置正确的路径,路径需要相对于可执行文件或绝对路径。
我收到相同的错误消息"无法打开x.bmp"。以下是对我有用的东西,我希望我能立即找到什么(使用 SDL2 和 Xcode 12(:
必须保存.bmp
文件才能SDL_LoadBMP()
工作的目录(至少对我来说(是:
/Sunday3/DerivedData/Sunday3/Build/Products/Debug/Sunday3.app/Contents/Resources
并且与.exe
文件不在同一目录中,该文件位于:
/Sunday3/DerivedData/Sunday3/Build/Products/Debug/Sunday3.app/Contents/MacOS
这两个位置都从项目根目录开始,而不是从电脑根目录开始。
我通过使用fopen
并将.txt
文件放在与.exe
相同的目录中(就像您通常所做的那样(来解决问题,并且正如预期的那样,它们没有打开。