问题描述
- MFC中视频流内存泄漏问题
- void CHLDlg::OnBnClickedOpen()
{
// TODO: 在此添加控件通知处理程序代码
CFileDialog dlg(TRUENULLNULLNULLNULL);
pCapture = NULL;
if(dlg.DoModal()==IDOK)//
{
PathName = dlg.GetPathName();
FileName = dlg.GetFileName();
}
else
{
return;
}c=(LPCSTR)PathName;pCapture = cvCaptureFromFile(c);video_fps=(int)cvGetCaptureProperty(pCaptureCV_CAP_PROP_FPS);hThread2 = CreateThread(NULL0Wavedisplay(LPVOID)this0NULL);
}
DWORD WINAPI CHLDlg::Wavedisplay(LPVOID lpParam)
{
CHLDlg *p=(CHLDlg *)lpParam;
p->SetTimer(1(int)(1000/p->video_fps)NULL);
return 0;
}void CHLDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDialogEx::OnTimer(nIDEvent);if(1==nIDEvent){ Frame_Img = cvQueryFrame( pCapture );}
}
程序如上,变量都封装在CHLDlg类里面,析构函数里将它们一一释放,为什么程序运行后内存一直以每秒8kb的速度上升?
时间: 2024-11-02 07:59:18