SetErrorMode没有效果?

我打电话

"SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);" 

加载一个DLL之前。 尽pipe如此,一个Windows消息popup

“这个应用程序无法启动,因为没有findblabla.dll …”。

为什么会发生? 我以为这是SetErrorMode应该防止? 谢谢!

SetErrorMode的调用可能永远不会执行 – 如果静态链接到DLL,它将随可执行文件一起加载。 您看到的消息被操作系统弹出,而不是由您的代码弹出。 如果你想控制DLL的负载,你应该使用LoadLibrary加载它 – 但是然后使用导出的函数有点困难。

您可以创建自己的加载程序(一个不同的可执行文件),这将确保所有的DLL都可用,然后运行主要的可执行文件。 但是这可能是一个矫枉过正的…