最近在用MFC写播放器时碰到的一个问题:
我在OnInitDialog()中new了一个Static控件,在OnSize()中对该控件进行了一些操作,发现在Debug下正常运行,在Release下会出现访问空指针的情况。
调试发现问题在这一句:pWnd = this ->GetDlgItem(pPlayerView->pViewFrame->GetDlgCtrlID());
但是在Debug下并不会出现这个问题。
经过查询发现:
执行顺序(以箭头方向):
Relase :OnInitDialog() -> OnSize()
Debug: Onsize() -> OnInitDialog()
作者在使用MFC编写播放器时遇到问题,在Release模式下出现访问空指针错误,而在Debug模式下正常。问题源于控件初始化和窗口大小调整的执行顺序不同。在Release模式下,OnInitDialog()之后立即调用OnSize(),导致控件尚未完全初始化。
370

被折叠的 条评论
为什么被折叠?



