好像網上沒有關于CxImage庫記憶體洩露介紹的,如果你将其應用到實際項目的開發中,那就坑大了。
我寫的測試程式界面如下:
----------------------------------------------------------------------------------------------------------------------------
我通過開啟一條線程,不斷的進行圖檔的儲存操作,發現程式運作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
--------------------------------------------------------------------------------------------------------------------------------------------
您的十分滿意是我追求的宗旨。
您的一點建議是我後續的動力。