1

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


何が起こっているのか知っている場合は、教えてください!

ありがとう!

4

1 に答える 1