1、在visual studio 下配置HALCON1002014/8/26MFC和HALCON混合编程在visual studio 2008下配置HALCON10.01. 新建一个MFC工程文件打开visual studio 2008-文件-新建-项目-Visual C+-MFC-MFC应用程序-输入程序名称-确定点击下一步点击基于对话框点击下一步勾选最小化框,最小化框点击下一步点击下一步点击完成。2. 配置属性 在【项目属性】-【配置属性】-【c/c+】-【常规】-【附加包含目录】中添加包含路径:$(HALCONROOT)include;$(HALCONROOT)includecpp注意:这里
2、用的HALCON为10.0。 在【项目属性】-【配置属性】-【连接器】-【常规】-【附加库目录】中添加库路径:$(HALCONROOT)lib$(HALCONARCH) 在【项目属性】-【配置属性】-【连接器】-【输入】-【附加依赖项】中添加库:halconcpp.lib点击确定。生成如下项目:3. 工具-选项-项目和解决方案-VC+目录下,附加库目录和包含文件目录添加库文件如下:$(HALCONROOT)libx86sse2-win32包含文件设置如下:$(HALCONROOT)includecpp$(HALCONROOT)include点击确定。配置完成。把HALCON程序导出到visua
3、l Studio 2008在HDevelop中编写的程序,导出为C+。文件-导出选择导出文件所放的位置和类型,并选择导出。本例中导出的halcon程序(c+)所在目录为:C:UsersAdministratorDesktophalconhalconhalconmfc.cpp在3Dlg.h(头文件中),把原hdevelop程序的变量声明部分放在Rebublic下,如图:/ Local iconic variables Hobject File, Region, ConnectedRegions, RegionTrans; Hobject SelectedRegions; / Local cont
4、rol variables HTuple Width, Height, WindowHandle;并在该头文件中添加halconcpp.h,并使用命名空间,即:#include “halconcpp.h”using namespace Halcon;如图:在3Dlg.cpp中包含头文件halcon.h,并使用命名空间,即:#include “halconcpp.h”或#include “halcon.h”using namespace Halcon;如图:点击生成-生成解决方案点击调试,出现下图点击读取图像,结果如下(与在HALCON中运行结果一致):点击图像处理:结果如下(与HALCON中结
5、果一致):注意:1. 在visual studio中导出HDevelop程序应该先导出程序,再在visual studio中新建MFC工程并配置。2. 对话框在资源文件下下的halconmfc.rc,如下图所示:3. 要想使图像显示在对话框里,要使用父窗口命令:Hlong MainWndID=(Hlong) m_hWnd2014/8/271. 在MFC/Halcon混合编程中,如何使得读取的图像和处理以后的图像同时并列显示的对话框中?解决过程:1) 在对话框中通过工具栏添加两个图片框:2) 在读取图像的程序下,复制如下代码:CRect rtWindow1; GetDlgItem(ID1)-Ge
6、tClientRect(&rtWindow1);/ID1为第一个图像控件的ID号,第二个窗口类似处理。HWND hImgWnd= GetDlgItem(ID1)-m_hWnd;Hlong MainWndID=(Hlong) m_hWnd;注意:ID1为第一个图像控件的ID号,第二个窗口类似处理,但注意两个窗口的ID号要不同。并且把open_window函数改成如下代码:open_window(rtWindow1.left, rtWindow1.top, rtWindow1.Width(), rtWindow1.Height(), (Hlong)hImgWnd, visible, , &Wind
7、owHandle); HDevWindowStack:Push(WindowHandle);即:然后在“图像处理”里面添加如下代码:CRect rtWindow2; GetDlgItem(ID2)-GetClientRect(&rtWindow2);/ID1为第一个图像控件的ID号,第二个窗口类似处理。 HWND hImgWnd= GetDlgItem(ID2)-m_hWnd; open_window(rtWindow2.left, rtWindow2.top, rtWindow2.Width(), rtWindow2.Height(), (Hlong)hImgWnd, visible, ,
8、&WindowHandle); HDevWindowStack:Push(WindowHandle);即:3) 运行程序,结果如下:2014/8/282. 在例子中使用的读取图像,读出的是一张图像,如何编程生成菜单项的形式?3. 如何在没有安装halcon的计算机下打开已经生成的项目?以及如何在没有安装VS,VC的环境下打开生成的项目?解答:在既没有安装halcon,也没有安装vc或vs的电脑上,运行已经编好的mfc工程的方法:1) 新建一个MFC应用程序,如上。在配置配置环境变量时,需要比上节多配置【常规】-【MFC使用】-【在静态库中使用MFC】2) 其他的配置和上一节一样。成功生成解决方案并调试程序。把建立的项目下的Debug文件夹复制到u盘下,并按如下要求复制如下文件:把license文件放到工程文件目录下(binDebug目录下);把halcon.dll,halconcpp.dll文件复制到工程文件目录下;创建C:Program FilesMVTechalcon,然后把help文件夹复制进去。注意:要把所使用的图片存在Debug文件夹下。3) 把u盘放在一个没有安装Halcon和vs的环境中就可以运行成功。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1