SetErrorMode没有效果?

时间:2011-07-08 10:45:25

标签: windows winapi windows-xp messagebox

我打电话

"SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);"

加载DLL之前。然而,弹出一条Windows消息

  

“此应用程序无法启动   因为找不到blabla.dll ......“。

为什么会这样?我以为这就是SetErrorMode应该阻止的? 谢谢!

1 个答案:

答案 0 :(得分:3)

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

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