【发布时间】:2011-03-22 00:44:21
【问题描述】:
我有一个现有的实用程序,我们称之为 util.exe。它是一个命令行工具,它从命令行获取输入,并在磁盘上创建一个文件,比如说一个图像文件
我想通过运行 util.exe 在另一个应用程序中使用它。但是它需要同步,以便在处理继续时知道文件存在。
例如(伪)
bool CreateImageFile(params)
{
//ret is util.exe program exit code
int ret = runprocess("util.exe",params);
return ret==0;
}
是否有一个 Win32 API 调用将运行该进程并等待它结束?我查看了 CreateProcess,但它在尝试启动时立即返回,我查看了 ShellExecute,但即使它是同步的,这似乎也有点难看。
【问题讨论】:
-
您已经通过提及 ShellExecute 回答了您自己的问题...
-
有点难看,不是吗?另外,我不确定我的程序返回码是否回来了,当我尝试它时,我得到了一个随机值 42 :)
-
还有一个叫做“同步_spawn”的东西,它通过将
_P_WAIT标志作为第一个参数传递给_spawn函数之一来完成:docs.microsoft.com/en-us/cpp/c-runtime-library/reference/…
标签: visual-c++ winapi spawning