注册 登录
编程论坛 VC.NET论坛

VS2013+MFC编程程序可以运行,但是一个按钮的结果出错

cquwt 发布于 2016-12-27 22:25, 4271 次点击

程序代码:

// 2个容器来存放图像数据和对应的标签
vector<Mat> images;
vector<int> labels; //作为外部变量定义
void FaceRecognitionDlg::OnBnClickedRecognize()
{
    // TODO:  在此添加控件通知处理程序代码
    images.clear();
    labels.clear();
    pEdtConfidence->GetWindowText(strConfidence);

    try
    {
        dConfidence = atoi((const char *)strConfidence);
    }
    catch (cv::Exception &e)
    {
        MessageBox("置信度请输入整数!");
        return;
    }
    model->set("threshold", dConfidence);
    if (!read_img(images, labels))
    {
        AfxMessageBox("Error in reading images!");
        images.clear();
        labels.clear();
        return;
    }
    if (images.size() < 1)
    {
        MessageBox("This demo needs at least 1 images to work!");
        return;
    }
    //training
    model->train(images, labels);

    bool_detec_reco = true;
    bool_picNum = true;
}

程序可以运行,但是这个按钮的对应函数(如上所示)出错了。
调试到这一句出错了:
//training
    model->train(images, labels);
调试到上面那句时的各个变量的值如下:
只有本站会员才能查看附件,请 登录

出错提示如下:
  0x5DAB77A9 (opencv_core2413.dll) (Faces.exe 中)处的第一机会异常:  0xC0000005:  写入位置 0xFEEEFEEE 时发生访问冲突。
  0x5DAB77A9 (opencv_core2413.dll) (Faces.exe 中)处有未经处理的异常:  0xC0000005:  写入位置 0xFEEEFEEE 时发生访问冲突。
请各位大神帮忙看看呐。。
1 回复
#2
zbjzbj2017-01-15 22:27
推测:你使用的dll中的函数出现了往地址0xfeeeeeee写入。这应该不是程序运行时应该的地址。可能程序错误或者参数传递错误,尤其指针指向错误位置。
1