如果这个问题的答案很简单,请原谅我,但我不知道是什么原因造成的。PathCombineA 函数以某种方式修改了 mypath 变量。如果你运行这个程序,你会明白我的意思。(必须链接 Shlwapi.lib)
#include <Windows.h>
#include <Shlwapi.h>
#include <iostream>
using namespace std;
int main()
{
CHAR temp[MAX_PATH];
CHAR mypath[MAX_PATH];
GetModuleFileNameA(NULL, mypath, MAX_PATH);
GetTempPathA(MAX_PATH, temp);
LPSTR name = PathFindFileNameA(mypath);
cout << mypath << endl;
PathCombineA(name, temp, name);
cout << mypath << endl;
getchar();
return 0;
}
PathCombineA 之前的输出
C:\Users\Owner\Desktop\etc\Debug\etc.exe
PathCombineA 之后的输出
C:\Users\Owner\Desktop\etc\Debug\C:\Users\Owner\AppData\Local\Temp\etc.exe
如果你们知道发生了什么,请告诉我!
谢谢!