gpt4 book ai didi

c++ - CreateProcess 在 exe 文件无效时等待

转载 作者:太空宇宙 更新时间:2023-11-04 15:35:57 25 4
gpt4 key购买 nike

我想制作一个简单的 C++ 程序,使用 CreateProcess 一次运行多个 exe 文件.如果 exe 文件无效(填充有随机数据),则会出现一个消息框,提示该文件与 64 位 Windows 不兼容,这很好,但我的程序会一直等到消息框关闭。有办法绕过这个吗?

最佳答案

您需要通过调用 SetErrorMode 更改流程的错误处理策略。 .您应该在程序的最开始,即启动期间执行此操作。

SetErrorMode(SetErrorMode(0) | SEM_NOGPFAULTERRORBOX | SEM_FAILCRITICALERRORS  
| SEM_NOOPENFILEERRORBOX);

我相信 SEM_FAILCRITICALERRORS 是与您当前问题相关的标志,但您也应该包括其他标志。

请注意,至少在旧版本的 Windows 中,没有简单获取当前错误模式的函数。 GetErrorMode功能是在 Vista 中添加的。因此,我们改为调用 SetErrorMode(0),它返回先前的错误模式。这种有点不方便的 API 设计在 Raymond Chen 的文章中有所讨论:Disabling the program crash dialog .当然,如果你不再支持XP,你可以使用:

SetErrorMode(GetErrorMode() | SEM_NOGPFAULTERRORBOX | SEM_FAILCRITICALERRORS  
| SEM_NOOPENFILEERRORBOX);

关于c++ - CreateProcess 在 exe 文件无效时等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33802440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com