我在我的C ++程序中使用main.exe,然后在某些情况下调用其他可执行文件。
在执行另一个exe之前如何暂停exe?
示例:
我有一个exe为不同的情况创建对话框(错误,无效的arg等)。有时我可能会从用户那里拿出一个arg&有时我可能不会。 所以,直到我从用户那里拿arg如何让我的main.exe暂停?另外,我想在另一个exe中使用arg。
我应该使用 new 来动态存储arg&将指针传递给我需要arg的exe中的内存位置?通过这样做,我做内存泄漏?在我需要arg结束后,我将使用删除。
答案 0 :(得分:1)
您可以使用Boost
(不记得确切的库名称),也可以使用:
wait
for * unix
和
胜利 WaitForSingleObject
。
如果我没有误会,Boost库实际上会使用这些函数。
答案 1 :(得分:1)
要在Windows上执行此操作,您需要使用CreateProcess()
生成流程,然后使用PROCESS_INFORMATION
等待WaitForSingleObject
结构中返回的句柄。
确保CreateProcess
调用成功。任何参数都可以通过命令行或使用共享内存或命名管道传递,有关示例,请参阅this。
答案 2 :(得分:0)
最简单的解决方案是执行其他程序的system
函数。在你的main.exe
中写道:
system("other.exe");
您还可以传递命令行参数:
#include <stringstream>
...
std::stringstream ss;
ss << "other.exe" << " " << "first-arg" << " " << "second-arg";
system(ss.str().c_str());
为此,不需要使用new
分配对象,但必须在other.exe
和argc
的{{1}}中解析参数。在argv
完成之前,您的main.exe
会暂停。