【发布时间】:2010-05-27 14:12:07
【问题描述】:
有谁知道 MessageBox(...) 会如何静默失败?
MessageBox(g_hMainhWnd, buffer, "Oops!", MB_OK | MB_ICONERROR);
ShellExecute(0, "open", "http://intranet/crash_handler.php", NULL, "", SW_SHOWNORMAL);
对于一点上下文,这段代码是在我们自己的异常处理程序中调用的,它是用 SetUnhandledExceptionFilter() 注册的
大多数时候,我会看到消息框,然后它会启动 Web 浏览器。
但是,我有一个 exe,据我所知,它使用了这个确切的代码,它成功启动了网络浏览器,但我没有首先看到消息框。
谢谢
提姆
破解它。我试过故意传入一个垃圾HWND,消息框没有出现。
谢谢布赖恩!
【问题讨论】:
-
当它失败时,实际发生了什么?进程是否终止? MessageBox 是否返回 0?是否可以通过 GetLastError() 来确定原因?
-
不幸的是,我无法再访问构建 exe 的代码,因此无法准确追踪。不过感谢您的建议。