MFC和Halcon的联合编程
一.配置halcon和v++联合编程的环境
1.如果你的v++下载好MFC可以跳过第一部分。打开开始,找到Visual Studio Installer,按照下图指示进行操作。
2.V++配置halcon环境
首先创建一个新项目
语言选择c++,选择MFC应用
项目名称和文件保存位置根据自己情况而定
选择基于对话框
如图,一个新的空项目已经创建成功,下面开始配置环境。首先找到项目名称位置,右键选择属性
如下面三个图,
(1).在C/C++常规里找到附加包含目录,添加如下两个目录,之后点击应用(在你halcon的安装目录下找到如下两个目录include和include\halconcpp)
D:\Halcon21.11\HALCON-21.11-Progress\include\halconcpp; D:\Halcon21.11\HALCON-21.11-Progress\include;
(2)在链接器-常规里找到-链接库依赖项,添加如下目录并点击应用。(在你halcon的安装目录下lib文件夹内)D:\Halcon21.11\HALCON-21.11-Progress\lib\x64-win64
(2)在链接器-输入里找到-附加依赖项,添加 halconcpp.lib
二.添加头文件并编辑第一个程序
1.在后面带有Dlg.h的文件里添加以下头文件看是否报错
#include "HalconCpp.h";
#pragma comment(lib,"halconcpp.lib")
using namespace HalconCpp;
2.编写一个显示图像的程序进行检验
首先把窗口的控件全部删掉,双击2处的工具箱,添加一个Button
和Picture Control
.
接着双击Button1进入控件控制程序,添加如下代码
其中ReadImage(&ho_Image, "01.png")
里01.png是图片文件路径,hwndl = GetDlgItem(IDC_STATIC)->m_hWnd;
里IDC_STATIC是PictureControl的ID
//添加全局变量
HObject ho_Image;
HTuple hv_Width, hv_Height, hv_WindowHandle;
ReadImage(&ho_Image, "01.png")
GetImageSize(ho_Image, &hv_Width, &hv_Height);
SetWindowAttr("background_color", "black");
//创建PictureControl的句柄
HWND hwndl;
hwndl = GetDlgItem(IDC_STATIC)->m_hWnd;
LONG lWWindowID = (LONG)hwndl;
//获取PictureControl窗口大小
CRect rect;
GetDlgItem(IDC_STATIC)->GetWindowRect(&rect);
m_w[0] = rect.Width();//m_w为HTuple类型,只装一个值,所以取索引0
m_h[0] = rect.Height();
//将句柄0替换成想要的窗体的句柄
OpenWindow(0, 0, m_w[0], m_h[0], lWWindowID, "visible", "", &hv_WindowHandle);
//OpenWindow(0, 0, hv_Width/2, hv_Height/2, 0, "visible", "", &hv_WindowHandle);
HDevWindowStack::Push(hv_WindowHandle);
if (HDevWindowStack::IsOpen())
DispObj(ho_Image, HDevWindowStack::GetActive());
点击运行,出现窗口点击Button1,出现如下界面表示配置成功