返回

云凤大哥,久仰大名,我碰到一个非常怪的问题,能给我点思路吗,我的邮箱是psistorm@126.com请问下面这段代码出现这种运行情况的可能性

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的值发生改变的;请问,发生上述运行现象的情况是有什么可能的解释呢?

名字: 自动排版 密码:

回复 | (2156) | 久仰大名 | 2009-04-24 10:16:39