wstring 转 LPWSTR 有关问题
wstring 转 LPWSTR 问题
我建立一个进程传递参数param,如下:
wstring param = L"/aG:\\"
BOOL result = CreateProcessW(pname.c_str(), (LPWSTR)(LPCWSTR)param.c_str(),
NULL, NULL, FALSE, 0, NULL, 0, &siw, &pi);
运行时参数是空,是不是我 string 转 LPWSTR 出错?以前也遇到这个问题,不知道怎么就好用了,这次就不好了,怎样解决?
------解决方案--------------------
http://blog.****.net/woshiqinxue/article/details/8442975
我博客里的转换方法,这个只适合windows的平台使用。你(LPWSTR)(LPCWSTR)param.c_str()等于没转一样,窄字符不支持强制转换宽字符。
------解决方案--------------------
代码木有问题呀,在 CreateProcessW 里面中断了?
------解决方案--------------------
试下这样
------解决方案--------------------
把exe路径跟参数一起作为字符串放到CreateProcess的commandline参数中调用
------解决方案--------------------
------解决方案--------------------
CreateProcess的第二个参数是LPTSTR,而不是LPCTSTR,PC平台下。
我建立一个进程传递参数param,如下:
wstring param = L"/aG:\\"
BOOL result = CreateProcessW(pname.c_str(), (LPWSTR)(LPCWSTR)param.c_str(),
NULL, NULL, FALSE, 0, NULL, 0, &siw, &pi);
运行时参数是空,是不是我 string 转 LPWSTR 出错?以前也遇到这个问题,不知道怎么就好用了,这次就不好了,怎样解决?
------解决方案--------------------
http://blog.****.net/woshiqinxue/article/details/8442975
我博客里的转换方法,这个只适合windows的平台使用。你(LPWSTR)(LPCWSTR)param.c_str()等于没转一样,窄字符不支持强制转换宽字符。
------解决方案--------------------
代码木有问题呀,在 CreateProcessW 里面中断了?
------解决方案--------------------
STARTUPINFO si = {0};
si.cb = sizeof(si);
PROCESS_INFORMATION pi = {0};
wstring str = TEXT("c:\\windows\\notepad.exe c:\\log.txt");
CreateProcessW(NULL, const_cast<LPWSTR>(str.c_str()), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
试下这样
------解决方案--------------------
把exe路径跟参数一起作为字符串放到CreateProcess的commandline参数中调用
------解决方案--------------------
wstring param = L"/aG:\\"
USES_CONVERSION;
BOOL result = CreateProcessW(pname.c_str(), W2A(pname.c_str()),
NULL, NULL, FALSE, 0, NULL, 0, &siw, &pi);
------解决方案--------------------
CreateProcess的第二个参数是LPTSTR,而不是LPCTSTR,PC平台下。