我打电话

"SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);"

在加载DLL之前。不过,会弹出一个窗口消息



为什么会这样呢?我以为那是SetErrorMode应该防止的事情?
谢谢!

最佳答案

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

您可以创建自己的加载器(一个不同的可执行文件),以确保所有DLL都可用,然后运行主可执行文件。但这可能是一个过大的杀伤力...

关于windows - SetErrorMode有没有效果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6623370/

10-15 02:47