C++ SDL2 无法加载任何文件
C++ SDL2 can't load any file
我正在使用 SLD2 来制作游戏,从现在开始一切正常。
我认为加载文件系统有问题。
例如,当我尝试加载 bmp 时:
#include <iostream>
# include "SDL.h"
int main(int argc, char* argv[]) {
SDL_Init(SDL_INIT_VIDEO); // Initialize SDL2
SDL_Window* window = SDL_CreateWindow("game", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
1000, 500, SDL_WINDOW_OPENGL);
SDL_Renderer* render = SDL_CreateRenderer(window, -1, 0);
SDL_Surface* image = SDL_LoadBMP("../background.bmp");
printf(SDL_GetError());
return 0;
}
SLD_GetError() 函数 return:
couldn't load ( some random weird chars)
SDL 混音器也一样
似乎任何 SDL2 功能都无法加载任何文件(或任何类型的文件)...
为什么?
(exe在子目录下,后台路径正确)
here is a screenshot
SDL2没有问题。您输入的路径可能无效,因为它显示“couldn't load ( some random weird chars )
”,这意味着 SDL 无法找到该文件。您正在使用 ../
表示您的 background.bmp
文件位于当前工作目录的父目录中。如果您使用 IDE 然后构建它,SDL 期望该文件位于项目文件夹的父目录中。如果您然后 运行 可执行文件,它希望该文件位于可执行文件的父目录中。所以尝试使用绝对路径,例如 C:\users\path-to-file\background.bmp
。如果您使用该路径系统,无论您的可执行文件位于何处或您在何处构建程序,SDL 始终会在给定路径中搜索 background.bmp
。
还要注意转义序列。使用 \
作为反斜杠。或者你可以只使用 /
.
我正在使用 SLD2 来制作游戏,从现在开始一切正常。 我认为加载文件系统有问题。 例如,当我尝试加载 bmp 时:
#include <iostream>
# include "SDL.h"
int main(int argc, char* argv[]) {
SDL_Init(SDL_INIT_VIDEO); // Initialize SDL2
SDL_Window* window = SDL_CreateWindow("game", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
1000, 500, SDL_WINDOW_OPENGL);
SDL_Renderer* render = SDL_CreateRenderer(window, -1, 0);
SDL_Surface* image = SDL_LoadBMP("../background.bmp");
printf(SDL_GetError());
return 0;
}
SLD_GetError() 函数 return:
couldn't load ( some random weird chars)
SDL 混音器也一样
似乎任何 SDL2 功能都无法加载任何文件(或任何类型的文件)... 为什么?
(exe在子目录下,后台路径正确) here is a screenshot
SDL2没有问题。您输入的路径可能无效,因为它显示“couldn't load ( some random weird chars )
”,这意味着 SDL 无法找到该文件。您正在使用 ../
表示您的 background.bmp
文件位于当前工作目录的父目录中。如果您使用 IDE 然后构建它,SDL 期望该文件位于项目文件夹的父目录中。如果您然后 运行 可执行文件,它希望该文件位于可执行文件的父目录中。所以尝试使用绝对路径,例如 C:\users\path-to-file\background.bmp
。如果您使用该路径系统,无论您的可执行文件位于何处或您在何处构建程序,SDL 始终会在给定路径中搜索 background.bmp
。
还要注意转义序列。使用 \
作为反斜杠。或者你可以只使用 /
.