我打电话
"SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);"
加载DLL之前。然而,弹出一条Windows消息
“此应用程序无法启动 因为找不到blabla.dll ......“。
为什么会这样?我以为这就是SetErrorMode应该阻止的? 谢谢!
答案 0 :(得分:3)
对SetErrorMode
的调用可能永远不会执行 - 如果您静态链接到DLL,它将与可执行文件一起加载。您看到的消息由操作系统弹出,而不是由您的代码弹出。如果你想控制DLL的负载,你应该使用LoadLibrary加载它 - 但是然后使用导出的函数有点困难。
您可以创建自己的加载程序(不同的可执行文件),这将确保所有DLL都可用,然后运行主可执行文件。但这可能是一种矫枉过正......