CxImage内存泄露

好像网上没有关于CxImage库内存泄露介绍的,如果你将其应用到实际项目的开发中,那就坑大了。

我写的测试程序界面如下:

CxImage内存泄露_第1张图片

----------------------------------------------------------------------------------------------------------------------------

我通过开启一条线程,不断的进行图片的保存操作,发现程序运行30分钟左右,

内存泄露就很明显了,关键代码如下:

void CTestCxImageDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);

	m_isRun=true;
	_beginthreadex(NULL,0,ThreadTestProxy,this,0,NULL);
}


void CTestCxImageDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
	m_isRun=false;
}

void CTestCxImageDlg::ThreadTest()
{
	CString imgPath;
	GetDlgItemText(IDC_TXT_IMG_PATH,imgPath);
	while(m_isRun)
	{
		DeleteFile("123.jpg");
		CxImage image(imgPath.GetBuffer(),CXIMAGE_FORMAT_JPG);
		if (image.IsValid())
		{
			image.SetJpegQuality(80);   //JPG压缩质量
			//image.Crop(0,0,m_iCarHeadWidthSave,m_iCarHeadHeightSave);     // 截图
			image.Crop(0,0,1024,768); 
			//image.Crop(rcCrop);
			image.Resample(800,600);       //图片的分辨率
			image.Save("123.jpg",CXIMAGE_FORMAT_JPG);
		}
		image.Destroy();
		Sleep(1000);
	}
}

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

不信的盆友,不妨一试。

例子VS2010工程下载:http://download.csdn.net/detail/friendan/7723703

--------------------------------------------------------------------------------------------------------------------------------------------

您的十分满意是我追求的宗旨。

您的一点建议是我后续的动力。









你可能感兴趣的:(VC)