【发布时间】:2019-04-26 18:40:50
【问题描述】:
我要将图像放入我的 sdl 应用程序,为此我需要知道它的路径。当我将完整路径放入 IMG_Load() 函数时,它可以工作。当我尝试使用 windows.h 函数 GetModuleFileName() 并将其与另一个字符数组结合时,我得到:
C:\用户\微 电容器\源\repos\FlatApoc\x64\Debug\FlatApoc.exe/Images/Play1.png
我要解决的问题是摆脱
FlatApoc.exe
来自 char 数组。我已经知道了
FlatApoc.exe
来自GetModuleFileName()。解决此问题的解决方案只是从 char 数组中删除 FlatApoc.exe,但我对 c++ 很陌生,我不知道如何执行这样的功能。
我的代码是:
char path[MAX_PATH]; // The path of the executable
GetModuleFileName(NULL, path, sizeof(path)); // Get the path
char pathbuff[256]; // Buffer for the png file
strncpy_s(pathbuff, path, sizeof(pathbuff));
strncat_s(pathbuff, "/Images/Play1.png", sizeof(pathbuff));
Button_Play1 = IMG_Load(pathbuff);
【问题讨论】:
-
使用
std::string或许std::regex会使这种方式更容易。 -
另外
boost filesystem或std::filesystem的最新标准添加将使您的手指剪断一样简单。 (更不用说一些可以用来提取完整文件路径的目录部分的基本 WinAPI 函数) -
你为什么写 C 却标记问题 C++?