请问下面这段代码出现这种运行情况的可能性
请问下面这段代码出现这种运行情况的可能性
try
{
if (g_wnd == hWnd)
{
TRACE("I am here!!\n");
}
lResult = DoCallWindowProc(wndProc, hWnd, message, wParam, lParam);
}catch(...)
{
if (g_wnd == hWnd)
{
TRACE("I meet a crash\n");
}
}
运行中发现, 有时候会只输出"I meet a crash",但没有"I am here!!"
代码中的g_wnd是全局变量,是我临时添加的,在调试中自己设置为感兴趣的值,别的地方是绝对不会修改它的,hWnd是这段代码所处的函数中的一个局部变量,DoCallWindowProc接受的参数都是by value的,从语法上来说,是不可能导致hWnd的值发生改变的;
请问,发生上述运行现象的情况是有什么可能的解释呢?