有谁知道MessageBox(...)可能会自动失败?

MessageBox(g_hMainhWnd, buffer, "Oops!", MB_OK | MB_ICONERROR);

ShellExecute(0, "open", "http://intranet/crash_handler.php", NULL, "", SW_SHOWNORMAL);

对于一些上下文,此代码在我们自己的异常处理程序中调用,该异常处理程序已在SetUnhandledExceptionFilter()中注册。

大多数情况下,我会看到消息框,然后它会启动Web浏览器。

但是,我有一个exe文件,据我所知,它使用此确切的代码,并且可以成功启动Web浏览器,但我首先看不到消息框。

谢谢

提姆

破解了。我试图故意传递垃圾HWND,但消息框未出现。

谢谢布莱恩!

最佳答案

只是一个想法,但g_hMainhWnd无效吗?在将NULL作为第一个参数时,看看它是否有效。

我建议在调用之后调用GetLastError并将输出写入文件。这样,您可以查看Windows认为错误是什么。 MSDN MessageBox文档提到它为此API设置了GetLastError,如果失败,它将返回零。

关于c++ - 为什么MessageBox会静默失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2921861/

10-13 05:46