[]关于SelectObject对象泄漏的有关问题
[求助]关于SelectObject对象泄漏的问题!例有如下代码:CDC memDCCBitmap memBmp// 已创建兼容CBitmap* pO
[求助]关于SelectObject对象泄漏的问题!
例有如下代码:
CDC memDC;
CBitmap memBmp;
// 已创建兼容
CBitmap* pOld = memDC.SelectObject(&memBmp);
//... 使用
memDc.SelectObject(pOld); // 如果没有这一句会不会对象泄漏
memBmp.DeleteObject();
memDC.DeleteDC();
也就是问: 当对象还选设备上下文没有选出来的时候直接DeleteObject会不会对象泄漏,
望高手指教 CDC? 设备上下文?对象泄漏
[解决办法]我记得是不会,测一下还不简单,去了那一句写个循环,看任务管理器里的gdi计数。
[解决办法]编译出错,memDc未定义
[解决办法]应该不泄漏,我也是这么写的
[解决办法]memDc.SelectObject(pOld); // 如果没有这一句会不会对象泄漏
memBmp.DeleteObject(); // 没有上一句,这不一句就不对了,还在dc中,不能删除对象
memDC.DeleteDC();
[解决办法]不会 ,windows程序设计上说 是会的。
我觉得书本是错误的。
之所以需要 将旧的gdi对象选回到dc中。
是一个好习惯,而且中途把dc传入另一个函数,会造成与你预期的效果不一样。
所以为了避免这回惣现象的出现, 就按照这个规定
[解决办法]memBmp.DeleteObject();
memDC.DeleteDC();
这两句多余,CDC析构函数会自动调用的
[解决办法]memDc.SelectObject(pOld); // 如果没有这一句会不会对象泄漏
不会产生泄露