难道只有new或malloc的时候会内存泄漏吗,还有其他什么情况 我的程序中没有用到new,malloc关键字,但是在9x系统下,内存资源再减少,请问还有什么其他的情况会产生内存泄漏, 我怀疑是重复画图造成的,我用了 CDC,但我已经ReleaseDC(pDC)了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还有别的,我知道的还有BSTR 如果不释放的话,也会有泄漏 我再想问一下比如test(){CString str;}如果这个函数不停的循环,会不会内存泄漏,如果把Cstring str放到头文件里,会不会泄漏? 函数结束前str会被析构。什么叫把Cstring str放到头文件里?应该也不会泄漏吧。 创建一个MFC 封装对象的时候,没有释放也会 Windows的GDI资源也要释放,比如You created a font using CreateFont(),When you no longer need the font, call the DeleteObject function to delete it. 请大家帮忙看一下,下面的代码测试由内存泄漏,但是我实在看不出来时哪里泄漏了CDC *pDC = GetDC(); CBrush SolidBrush(RGB(30,30,30)); pDC->SelectObject(&SolidBrush); pDC->Rectangle(CRect(100,170,750,370)); CPen pen; pen.CreatePen(PS_SOLID,1,RGB(90,170,30)); pDC->SelectObject(&pen); pDC->MoveTo(100,210); pDC->LineTo(750,210); pen.DeleteObject(); ReleaseDC(pDC); 你的pen还和CDC指针绑定在一起,所以这一句pen.DeleteObject();没有作用,并不能删除pen而且你自己定义的CBrush也没有删除。我想应该这样把CDC *pDC = GetDC(); CBrush *pOldBrush;CPen *pOldPen; CBrush SolidBrush(RGB(30,30,30)); pOldBrush=pDC->SelectObject(&SolidBrush);//不同 pDC->Rectangle(CRect(100,170,750,370)); CPen pen; pen.CreatePen(PS_SOLID,1,RGB(90,170,30)); pOldPen=pDC->SelectObject(&pen);//不同 pDC->MoveTo(100,210); pDC->LineTo(750,210); pdc->SelectObject(pOldBrush); ReleaseDC(pDC); 不好意思,刚才没有写完就按了回复了接着来你的pen还和CDC指针绑定在一起,所以这一句pen.DeleteObject();没有作用,并不能删除pen而且你自己定义的CBrush也没有删除。我想应该这样把CDC *pDC = GetDC(); CBrush *pOldBrush;CPen *pOldPen; CBrush SolidBrush(RGB(30,30,30)); pOldBrush=pDC->SelectObject(&SolidBrush);//不同 pDC->Rectangle(CRect(100,170,750,370)); CPen pen; pen.CreatePen(PS_SOLID,1,RGB(90,170,30)); pOldPen=pDC->SelectObject(&pen);//不同 pDC->MoveTo(100,210); pDC->LineTo(750,210); pdc->SelectObject(pOldBrush);//加上 pDC->SelectObject(pOldPen)//加上 ReleaseDC(pDC);这样就把你自己定义的刷子和笔和CDC断开了联系,由于SolidBrush和pen是局部变量,所以他们可以自动析构! ?求教关于fopen路径问题 google也有瘫痪、发疯的时候,号称技术天下第一的水平不过如此啊,不信就来体验体验! 数据库操作的Execute命令中,如何加入一个含有'符号的文件名啊? 求GSM AT 指令C语言程序实例 关于读取Ini文件的一个莫名其妙的问题(急) 英文版VC控件上写汉字后,运行出现乱码,什么原因? 如何提高重绘制速度 怎样改变static控件的背景色? 对话框的字体,在线等,谢了! 人脸识别紧急求人解决一些问题!!!!散分求人 如何使得固定大小的窗口,在不同分辨率的显示器下,它的物理尺寸不变??? help
test()
{
CString str;
}
如果这个函数不停的循环,会不会内存泄漏,如果把Cstring str放到头文件里,会不会泄漏?
CDC *pDC = GetDC();
CBrush SolidBrush(RGB(30,30,30));
pDC->SelectObject(&SolidBrush);
pDC->Rectangle(CRect(100,170,750,370));
CPen pen;
pen.CreatePen(PS_SOLID,1,RGB(90,170,30));
pDC->SelectObject(&pen);
pDC->MoveTo(100,210);
pDC->LineTo(750,210);
pen.DeleteObject();
ReleaseDC(pDC);
你的pen还和CDC指针绑定在一起,
所以这一句pen.DeleteObject();没有作用,并不能删除pen
而且你自己定义的CBrush也没有删除。我想应该这样把CDC *pDC = GetDC();
CBrush *pOldBrush;
CPen *pOldPen;
CBrush SolidBrush(RGB(30,30,30));
pOldBrush=pDC->SelectObject(&SolidBrush);//不同
pDC->Rectangle(CRect(100,170,750,370));
CPen pen;
pen.CreatePen(PS_SOLID,1,RGB(90,170,30));
pOldPen=pDC->SelectObject(&pen);//不同
pDC->MoveTo(100,210);
pDC->LineTo(750,210);
pdc->SelectObject(pOldBrush);
ReleaseDC(pDC);
接着来你的pen还和CDC指针绑定在一起,
所以这一句pen.DeleteObject();没有作用,并不能删除pen
而且你自己定义的CBrush也没有删除。我想应该这样把CDC *pDC = GetDC();
CBrush *pOldBrush;
CPen *pOldPen;
CBrush SolidBrush(RGB(30,30,30));
pOldBrush=pDC->SelectObject(&SolidBrush);//不同
pDC->Rectangle(CRect(100,170,750,370));
CPen pen;
pen.CreatePen(PS_SOLID,1,RGB(90,170,30));
pOldPen=pDC->SelectObject(&pen);//不同
pDC->MoveTo(100,210);
pDC->LineTo(750,210);
pdc->SelectObject(pOldBrush);//加上
pDC->SelectObject(pOldPen)//加上
ReleaseDC(pDC);
这样就把你自己定义的刷子和笔和CDC断开了联系,由于SolidBrush
和pen是局部变量,所以他们可以自动析构!