MFC OnInitDialog和OnSize的运行顺序在Debug与Release下执行顺序

作者在使用MFC编写播放器时遇到问题,在Release模式下出现访问空指针错误,而在Debug模式下正常。问题源于控件初始化和窗口大小调整的执行顺序不同。在Release模式下,OnInitDialog()之后立即调用OnSize(),导致控件尚未完全初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在用MFC写播放器时碰到的一个问题:
我在OnInitDialog()中new了一个Static控件,在OnSize()中对该控件进行了一些操作,发现在Debug下正常运行,在Release下会出现访问空指针的情况。
调试发现问题在这一句:pWnd = this ->GetDlgItem(pPlayerView->pViewFrame->GetDlgCtrlID());
但是在Debug下并不会出现这个问题。
经过查询发现:
执行顺序(以箭头方向):
Relase :OnInitDialog() -> OnSize()

Debug: Onsize() -> OnInitDialog()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值