Tip.先说环境配置步骤,再说遇到的各种疑难杂症。
Section 1:按照需求编写Halcon代码并导出c++代码
1.Halcon代码导出为C++格式
首先halcon这边先导出C++代码备用,将编写完成的halcon代码导出。示例如下:
Section 2:QT Creator初始创建项目之后的配置
1.QT与halcon联合编程时要选择MSVC编译器版本,MinGW版本会出错【由于halcon自身的链接库就是由VS的编译器编译生成的】;QT初始创建MainWindow项目时先初步编译一下进而生成Debug文件夹,便于后面将halcon.dll与halconcpp.dll放入Debug文件夹中。
2.项目名称.pro下添加库文件[halcon安装目录下的include和lib文件夹]
3.在Qt工程文件中添加几个主要的库文件就可以了,其他的用得到少,具体的可以参考其他文章
#-----------------------添加进.pro工程文件-----------------
#-----------------------QT与halcon联合编程配置-------------
INCLUDEPATH += $$PWD/include
INCLUDEPATH += $$PWD/include/halconcpp
LIBS += $$PWD/lib/x64-win64/halconcpp.lib
LIBS += $$PWD/lib/x64-win64/halcon.lib
4.mainwindow.h的头文件中包含halcon相关头文件与命名空间
5.初步在ui中绘制一个简单界面【在此以下界面较简单只为演示作用】
6.在halcon安装目录下,如图文件夹下,找到halcon.dll和halconcpp.dll两个文件,复制到项目.exe同级目录下(在Debug文件里面)
7.至此程序编译应该就没有问题了,最后将Halcon中导出的C++代码引入进来即可。
//Function:打开文件并读图显示在窗口中
Hlong WindID = (Hlong)ui->gv_Main->winId ();
if (HDevWindowStack::IsOpen())
CloseWindow(HDevWindowStack::Pop());
SetWindowAttr("background_color","black");
OpenWindow(0,0,ui->gv_Main->width (),ui->gv_Main->height (),WindID,"visible","",&hv_WindowHandle);
HDevWindowStack::Push(hv_WindowHandle);
//主体函数
QString path = QFileDialog::getOpenFileName(this,"Slect Image","","(*.png *.jpg)");
if(path=="") return;
ReadImage(&ho_Image, HTuple(path.toStdString().c_str()));
GetImageSize(ho_Image, &hv_Width, &hv_Height);
SetPart(hv_WindowHandle, 0, 0, hv_Height-1, hv_Width-1);
DispObj(ho_Image, hv_WindowHandle);
8.最终示例程序显示效果图
=============================================================
Section 3:联合编程摸索过程中遇到的疑难杂症:
1.解决Qt5Core.dll丢失 / QT 在QTcreator之外点击exe文件运行时出现的‘dll缺失’,‘无法定位程序输入点’,‘(0xc000007b)’
★解决方案:设置环境变量,在系统环境变量中加入你所采用的QT编译器目录bin文件夹的路径。