qq_34023390
2016-03-28 12:03用MFC的对话框载入摄像头并处理,运行接近10分钟后提示内存出错,指针都释放掉了。这是什么原因呀?
5相关的代码:
void CMFC_VedioDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
if(!pCapture)
{
pCapture = cvCaptureFromCAM(0);
pFrame = cvQueryFrame(pCapture);
drawToDC(pFrame, IDC_Open);
}
SetTimer(IDC_BUTTON1, 10, NULL);
}
void CMFC_VedioDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
SetTimer(IDC_BUTTON2, 10, NULL);
}
void CMFC_VedioDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
int i, j;
switch(nIDEvent)
{
case IDC_BUTTON1:
{
if(m_bOpenCamera)
{
pFrame = cvQueryFrame(pCapture);
drawToDC(pFrame, IDC_Open);
}
break;
}
case IDC_BUTTON2:
{
IplImage* pGray = cvCreateImage(cvGetSize(pFrame), 8, 1);
cvCvtColor(pFrame, pGray, CV_BGR2GRAY);
cvCanny(pGray,pGray,100,255,3);
drawToDC(pGray, IDC_DEAL);
cvReleaseImage(&pGray);
break;
}
}
CDialogEx::OnTimer(nIDEvent);
}
void CMFC_VedioDlg::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值c
cvReleaseCapture(&pCapture);
cvReleaseImage(&pFrame);
KillTimer(IDC_BUTTON1);
KillTimer(IDC_BUTTON2);
CDialogEx::OnClose();
}
void CMFC_VedioDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnOK();
}
PS:参考这个博客写的代码:http://www.cnblogs.com/leven20061001/archive/2012/10/17/2727865.html
运行10分钟程序就报错了,好郁闷呀!
- 点赞
- 回答
- 收藏
- 复制链接分享
3条回答
为你推荐
- MFC 对话框客户区外添加标尺功能 求大神给个模板 或者用什么类能实现
- mfc
- c++
- 1个回答
- MFC 编译提示 找不到此类文件或者目录??这是什么问题
- mfc
- 图片
- class
- 3个回答
- MFC按钮触发事件中如何关闭其它类的对话框,是需要获取其他类的指针吗?代码要怎么写?
- mfc
- 对话框
- 6个回答
- MFC将对话框复制一份后粘贴出另一个对话框,将上面控件删除了运行时候却还在
- mfc
- 控件
- 界面
- 对话框
- 7个回答
- 如何将MFC对话框中的坐标系换成Y轴向上的如图,在哪个函数里换?
- mfc
- 对话框
- 坐标系
- 1个回答
换一换