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()); }