0

これが私のコードです:

TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");
GetModuleFileNameEx (hProcess, NULL, szProcessName, 
                     sizeof(szProcessName)/sizeof(TCHAR));

char*ではなく、のパスが必要TCHAR[]です。変換せずにどういうわけか可能(WideCharToMultiByte)ですか?

ありがとう...

4

2 に答える 2

6

GetModuleFileNameExは単なるマクロです。ANSIバージョンにはGetModuleFileNameExAを使用できます。GetModuleFileNameExWを呼び出してから、内部ですべての変換を行います。

ただし、モジュールのファイル名にUnicode文字が含まれていないことを確認する必要があります。

char szProcessName[MAX_PATH] = "<unknown>";
GetModuleFileNameExA(hProcess, NULL, szProcessName, sizeof szProcessName);
于 2009-08-03T09:38:35.767 に答える
0

Unicode アプリケーションを構築していない (つまり、_UNICODE が定義されていない) 場合は、TCHAR == char となることに注意してください。

于 2009-08-03T11:51:22.950 に答える