有谁知道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/