これに対する答えが簡単な場合はご容赦ください。しかし、何が原因なのかわかりません。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
何が起こっているのか知っている場合は、教えてください!
ありがとう!