我想检查是否为可执行文件安装了所有必需的DLL,因此我使用CreateProcess
运行它,并检查退出代码。
问题:Windows显示弹出窗口,说明找不到DLL,然后显示弹出窗口,说明程序已停止工作。
如何避免所有这些错误弹出窗口?
答案 0 :(得分:5)
您需要致电SetErrorMode
通过SEM_FAILCRITICALERRORS
。
SetErrorMode
是一个稍微棘手的API,因为您需要将新模式与现有模式合并。 Raymond Chen explains how to do it correctly。
答案 1 :(得分:0)
无论如何,这不会涵盖所有有问题的案件。您的进程可能依赖于延迟加载DLL。您可以通过dependency walker tool(或类似)检查您的可执行文件。
但是,您的进程可能会尝试在运行时加载更多DLL(通过LoadLibrary
或类似方法)。