我尝试使用以下代码运行程序:
PROCESS_INFORMATION ProcInfo = { 0 };
STARTUPINFO StartInfo = { 0 };
StartInfo.cb = sizeof(StartInfo);
if (!::CreateProcessW(NULL, (LPWSTR)wszPathToFile, NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &StartInfo, &ProcInfo)) {
return GetLastError();
}
但是我收到错误消息:系统找不到指定的路径。
wszPathToFile-文件路径(例如:“ C:\ test \ test.exe / retest”)。文件夹“测试”被隐藏
如何解决?
最佳答案
该文件夹是隐藏的无关紧要。在这里没有影响。
如注释中所述,您正在强制转换lpCommandLine
参数表明szPathToFile
不是正确的类型。它必须是指向可修改的宽字符数组的指针。如果是这样,则可以省略强制转换,编译器将直接接受szPathToFile
。szPathToFile
实际上很可能是指向ANSI编码的8位char
数组的指针。