Halcon机器视觉论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 496|回复: 6
收起左侧

[待解决] 用mfc和halcon打开图片,内存似乎报错溢出,哪儿错了??

[复制链接]
  • TA的每日心情
    害羞
    2019-5-16 14:50
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    3

    主题

    19

    帖子

    50

    积分

    Rank: 1

    积分
    50

    切换助手验证会员

    发表于 2019-1-2 16:21:25 | 显示全部楼层 |阅读模式

    试用员工 |主题 3|帖子 19|积分 50

    51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

    您需要 登录 才可以下载或查看,没有帐号?会员注册

    x
    在mfc中点击显示图片按钮,将图片显示在picture control上,报错似乎内存溢出,图片不能显示,哪儿错了呢???
    TIM截图20190102161618.png TIM截图20190102161734.png TIM截图20190102161755.png TIM截图20190102161818.png
    代码如下////////////////////////
    void CMCFLearningCaseDlg::OnBnClickedPictureButton()
    {
            // TODO: 在此添加控件通知处理程序代码
            //得到图片文件路径
            TCHAR szFilters[] = _T("图片文件(.bmp .png .jpg)/.bmp;.png;*jpg/All Files (.)/.*||");
            CFileDialog fileDlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters,NULL);
            CString pathName;
            HImage Image;
            HTuple Width, Height;
            if (fileDlg.DoModal() == IDOK)
            {
                    pathName = fileDlg.GetPathName();
            }
            //pop up pathname
            MessageBox(pathName);

            //change PathName Type
            int len = WideCharToMultiByte(CP_ACP, 0, pathName, -1, NULL, 0, NULL, NULL);
            char *ptxtTemp = new char[len + 1];
            WideCharToMultiByte(CP_ACP, 0, pathName, -1, ptxtTemp, len, NULL, NULL);

            //读取图片
            Image.ReadImage(ptxtTemp);
            //得到图片尺寸
            Image.GetImageSize(&Width, &Height);
            //窗口句柄获取
            HWND hImgWnd = GetDlgItem(IDC_PICTURE_STATIC)->m_hWnd;
            CRect rtWindow;
            GetDlgItem(IDC_PICTURE_STATIC)->GetClientRect(&rtWindow);
            HWindow m_htWindow;
            //打开一个窗口并显示图片
            m_htWindow.OpenWindow(rtWindow.left, rtWindow.top, rtWindow.Height(), rtWindow.Width(), (Hlong)hImgWnd, "visible", "");
            m_htWindow.SetPart(0, 0, Width.I(), Height.I());
            Image.DispImage(m_htWindow);
    }



    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    开心
    昨天 18:01
  • 签到天数: 419 天

    连续签到: 2 天

    [LV.9]以坛为家II

    104

    主题

    496

    帖子

    2707

    积分

    Rank: 9

    积分
    2707

    热心会员突出贡献切换助手验证会员最佳新人

    发表于 2019-1-2 17:19:29 | 显示全部楼层

    管理员 |主题 104|帖子 496|积分 2707

    你用的哪个版本的?是18.11?

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2019-5-16 14:50
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    3

    主题

    19

    帖子

    50

    积分

    Rank: 1

    积分
    50

    切换助手验证会员

     楼主| 发表于 2019-1-2 17:39:09 | 显示全部楼层

    试用员工 |主题 3|帖子 19|积分 50

    绝地武士 发表于 2019-1-2 17:19
    你用的哪个版本的?是18.11?

    对的,最新版本

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2019-5-16 14:50
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    3

    主题

    19

    帖子

    50

    积分

    Rank: 1

    积分
    50

    切换助手验证会员

     楼主| 发表于 2019-1-2 18:55:41 | 显示全部楼层

    试用员工 |主题 3|帖子 19|积分 50

    TIM截图20190102185411.png
    这个是怎么错了呢,把Width 和Height赋初值NULL也是同样报错。
    是文件路径有错吗?

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-12-18 10:28
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    0

    主题

    49

    帖子

    579

    积分

    Rank: 3

    积分
    579
    发表于 2019-1-3 13:02:24 | 显示全部楼层

    部门助理 |主题 0|帖子 49|积分 579

    本帖最后由 mediation 于 2019-1-3 13:03 编辑

    m_htWindow.OpenWindow(rtWindow.left, rtWindow.top, rtWindow.Height(), rtWindow.Width(), (Hlong)hImgWnd, "visible", "");
    好像这里width() 和 Height() 位置交换了,不知道是不是引起异常的原因之一
    还有一个Openwindow最好放在初始化函数里;
    不能每次点击就打开一个窗口,点多了就内存泄漏了

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2019-5-16 14:50
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    3

    主题

    19

    帖子

    50

    积分

    Rank: 1

    积分
    50

    切换助手验证会员

     楼主| 发表于 2019-1-5 09:53:12 | 显示全部楼层

    试用员工 |主题 3|帖子 19|积分 50

    最后不用HImage类,而该用导出文件中的HObject类,仿照导出文件写解决了问题,然而依旧不清楚上述代码有什么问题。

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    该用户从未签到

    0

    主题

    7

    帖子

    40

    积分

    Rank: 1

    积分
    40
    发表于 2019-1-5 16:42:00 | 显示全部楼层

    试用员工 |主题 0|帖子 7|积分 40

    文件路径不要出现中文字符

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    Halcon鸟叔机器视觉1鸟叔机器视觉 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用反馈 | 51Halcon论坛管理团队论坛管理团队

    申请友链| 小黑屋| 手机版| Archiver| Halcon机器视觉论坛  

    粤ICP备15095995号-2 粤公网安备44030602000670号

    Powered by Discuz! X3.4 Licensed© 2015-2019 Comsenz Inc.

    快速回复 返回顶部 返回列表