Making an exe pause
Making an exe pause
我在c++中使用main.exe程序,然后在某些情况下调用其他可执行文件。
如何使一个exe暂停,直到另一个exe执行?
的例子:
我有一个exe,它为不同的情况(错误,无效参数等)创建对话框。有时我可能会从用户那里取一个参数&有时我可能不会。所以,直到我从用户获取参数我如何使我的main。exe暂停?此外,我希望在另一个exe中使用参数。
那么我应该使用new来动态存储arg吗?传递指针到我需要参数的任何exe中的内存位置?通过这样做我做内存泄漏吗?我将使用delete在我需要的参数结束后。
要在Windows上做到这一点,您需要使用CreateProcess()
生成您的进程,然后等待使用WaitForSingleObject
在PROCESS_INFORMATION
结构中返回的句柄。
确保CreateProcess
呼叫成功。任何参数都可以通过命令行传递,也可以使用共享内存或命名管道传递,示例如下:
您可以使用Boost
(不记得确切的库名),或者您可以使用:
wait
for *unix
和
WaitForSingleObject
for Win.
如果我没记错的话,Boost库实际上使用了这些函数。
最简单的解决方案是使用system
函数来执行其他程序。在你的main.exe
中,你应该写:
system("other.exe");
你也可以传递命令行参数:
#include <stringstream>
...
std::stringstream ss;
ss << "other.exe" << " " << "first-arg" << " " << "second-arg";
system(ss.str().c_str());
对于这种情况,不需要使用new
分配对象,但是必须从argc
和argv
中解析other.exe
中的参数。您的main.exe
将暂停直到other.exe
完成。
相关文章:
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 终端不会为C++文件创建.exe文件吗
- 在Windows中以.exe的形式运行c++
- Visual Studio mkl_link_tool.exe链接错误
- PrintWindow函数在notepad.exe中出错
- VSCode C++ 编译的exe感染了Win32:TrojanX-gen[Trj]
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- 获取当前正在运行的 exe 名称(不是路径)
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 1d.exe找不到SFML文件?
- VI工作室代码错误无法打开输出文件主.exe
- 如何为每个客户生成自定义 exe
- 使用参数在 C# 的C++上运行.exe
- 在 ******.exe 中0x00000000772CA267 (ntdll.dll) 处未处理的异常:0xC0000
- 如何在Visual Studio Code中重命名我的a.exe文件?
- 解析引用 |exe/dll vs lib
- Q没有管理权限的 exe 无法启动维护工具
- 如何定义自定义生成配置类型,其中通常是.exe的目标改为 DLL
- 项目.exe在系统("pause")之后触发了断点
- Making an exe pause