我正在C++ / SDL中创建PONG克隆,并且我的所有镜像都在程序启动的目录中。我可以使用GetCurrentDirectory()成功找到该路径,并使用strcat()打开文件以附加实际图像,它将很好地加载,但是这将更改原始值,因此当我尝试加载下一个图像时,它将无用。图片。如何在不更改原始值的情况下通过路径,或者解决该问题的另一种方法。
我当前的代码:
TCHAR openingdirectorytemp [MAX_PATH];
bgtexturesurf = SDL_LoadBMP(strcat(openingdirectorytemp, "\\bg.bmp"));
最佳答案
尽管可以按照其他答案的建议使用C++字符串,但仍然可以保留C方法。
您需要做的就是通过复制原始内容创建另一个字符串,并将其用于strcat:
TCHAR openingdirectorytemp [MAX_PATH];
TCHAR path [MAX_PATH];
strcpy(path, openingdirectorytemp);
bgtexturesurf = SDL_LoadBMP(strcat(path, "\\bg.bmp"));
这样,您将创建具有单独内存空间的字符串
path
,因此strcat不会影响openingdirectorytemp