我的情况是:
m_GameStartDC.CreateCompatibleDC(AfxGetMainWnd()->GetWindowDC());
那释放DC直接用m_GameStartDC.DeleteDC();就可以了吗???那个
GetWindowDC()要不要释放它呢??
mfc的,请问我这种情况要怎样才能完整释放所有DC?
答案:3 悬赏:70 手机版
解决时间 2021-03-19 14:02
- 提问者网友:情歌越听越心酸
- 2021-03-18 20:30
最佳答案
- 五星知识达人网友:独钓一江月
- 2021-03-18 21:29
据我个人使用DC的经验,在哪Get的就要在哪Release
在Get次数不多的时候,可以不release,程序不会出错。
但是如果你Get过于频繁,程序运行一段时间就会出现debug assertion fail的错误
因为DC引用有个表,如果满了的话就会报错。
在Get次数不多的时候,可以不release,程序不会出错。
但是如果你Get过于频繁,程序运行一段时间就会出现debug assertion fail的错误
因为DC引用有个表,如果满了的话就会报错。
全部回答
- 1楼网友:枭雄戏美人
- 2021-03-18 23:39
最好的是把cdc定义成指针,这样你getdc只是把mfc自己创建的dc传了个地址过来,并没有开辟新内存。也不需要自己去释放。
- 2楼网友:街头电车
- 2021-03-18 22:40
有很多种DC,CwindowsDC,cclientdc不需要释放,cdc需要释放。释放用release就行
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯