MFC调用halcon生成的cpp内容

打开VS,文件——新建——项目——Visual C++——MFC——MFC应用程序,注意下图,其他默认。窗体1个Button、1个Picture Control

【VS配置Halcon】

1、若halcon为64位,则其相应的文件也是64位的,所以选择x64。32位的同理。

2、项目——属性,C/C++——常规,附加包含目录里添加下图两个目录

链接器——常规,附加库目录中添加x64-win64,32位的就添加32位的。

链接器——输入,附加依赖项中添加HalconCpp.lib

【MFC文件中添加代码】从Halcon生成的cpp文件中,复制即可(void action()中的代码)

注意,代码添加在Dlg.cpp中

双击Button按钮即可跳转Dlg.cpp文件的单击事件函数处,粘贴void action()中的代码

同时,在最上方添加如下代码:

#  include "HalconCpp.h"
using namespace HalconCpp;

运行即可。

为了使图像显示在Picture Control控件中,添加一些代码(红色部分)

void CMFCApplication3Dlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码
    // Local iconic variables
    HObject  ho_Image1;

    // Local control variables
    HTuple  hv_Width, hv_Height, hv_WindowHandle;

    ReadImage(&ho_Image1, "C:/Users/Jv/Desktop/1.jpg");
    GetImageSize(ho_Image1, &hv_Width, &hv_Height);
    SetWindowAttr("background_color", "black");

    HWND hwnd1;
    CRect rect;
    GetDlgItem(IDC_STATIC)->GetWindowRect(&rect);
    hwnd1 = GetDlgItem(IDC_STATIC)->m_hWnd;
    LONG PictureControlID = (LONG)hwnd1;

    HTuple m_width, m_high;
    m_width[0] = rect.Width();
    m_high[0] = rect.Height();


    OpenWindow(0, 0, m_width,m_high, PictureControlID, "visible", "", &hv_WindowHandle);
    HDevWindowStack::Push(hv_WindowHandle);
    if (HDevWindowStack::IsOpen())
        DispObj(ho_Image1, HDevWindowStack::GetActive());
}

posted @ 2019-03-27 20:48  夕西行  阅读(1334)  评论(0编辑  收藏  举报