我试图获取本地'程序文件'目录路径并追加一些额外的路径,并简单地执行它。不能让它正常工作..C++ SHGetFolderPath问题
这是我当前的代码:
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
编辑:
已在代码中的错误上面,我试图运行localAppData
这是对“程序文件”目录的路径,而不是运行整个路径。
但是当我尝试使用,而不是在CreateProcess
功能localAppData
VAR的ss
VAR,我越来越对使用了错误类型VAR的错误(需要使用LPCWSTR是)。
但是,当我尝试这个,不工作以及..没有错误,但应用程序没有运行,我错过了什么?
wchar_t localAppData[MAX_PATH];
STARTUPINFO sInfo;
PROCESS_INFORMATION pInfo;
SHGetFolderPath(NULL, CSIDL_PROGRAM_FILESX86, 0, NULL, localAppData);
std::wstringstream ss;
ss << localAppData << L"/MyApp/MyExe.exe";
LPCWSTR str = ss.str().c_str();
CreateProcess(str, NULL,NULL, NULL,FALSE,NULL,NULL,NULL,&sInfo,&pInfo);
return str;
任何想法?
请参阅我的更新.. – user838437 2012-07-12 13:53:17
对不起,现在很难理解现在的问题。也许你可以用你当前的代码发布一个新的问题,没有历史。 – 2012-07-12 13:57:33
此外,情况“没有错误,但应用程序未运行”意味着您不检查所调用函数的返回值。请提供更多信息。 – 2012-07-12 13:58:46