我正在尝试使用CreateProcess
以运行位于用户的 Program Files 目录中的文件,因此我正在尝试使用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
注意:我正在使用 SHGetFolderPath 因为我需要它才能在 XP 和 Vista/7 上工作
有任何想法吗?