CreateProcess
ユーザーのProgramFilesディレクトリにあるファイルを実行するために使用しようとしCSIDL_PROGRAM_FILESX86
ています。その特定のプログラムは常に(x86)フォルダーにあるため、使用しようとしています。
私の問題は、それを動作させることができないということです。何らかの理由で、使用方法の例が見つからずcreateprocess
、CSIDL_PROGRAM_FILESX86
そのような例を教えてもらえますか?たぶん私は別の関数を使用する必要がありますか?
編集:
これは私の現在のコードです:
wchar_t* localAppData = 0;
SHGetFolderPath(NULL, CSIDL_PROGRAM_FILESX86, 0, NULL, &localAppData);
wstringstream ss;
ss << localAppData << L"/MyApp/MyExe.exe";
CreateProcess(static_cast<void*>(localAppData));
私はこれを手に入れていSHGetFolderPath
ます:
cannot convert parameter 5 from wchar_t ** to LPWSTR
また、ヘッダーにsstreamを含めても、次のエラーが発生します。
'wstringstream' : undeclared identifier
注:XPとVista / 7の両方で動作するために必要なため、SHGetFolderPathを使用しています
何か案は?