Halcon学习(四) 导出C++代码,在VS2010下编译

December 17, 2023
测试
测试
测试
测试
3 分钟阅读

Halcon中除了依赖于HDevelop平台的操作,其他算子都支持了C++语言接口,比如: read_image()算子:

这里写图片描述
这里写图片描述

而dev_display()则没有C++的接口:

这里写图片描述
这里写图片描述

我们使用Halcon导出一个简单的功能算子: 在HDevelop中只添加read_image (Image, 'fabrik')一行代码,选择“文件”–“导出”,在“导出”窗口中选择导出文件的格式(C++ - HALCON/C++)并选择导出路径:

这里写图片描述
这里写图片描述

这样在路径下我们会看到一个.cpp文件:

这里写图片描述
这里写图片描述

这个文件中,功能已经被定义到了action()函数中,所以我们需要的也只是该函数中的内容:

void action()
{
  // Local iconic variables
  HObject  ho_Image;
  ReadImage(&ho_Image, "fabrik");
}

可以看到,这个函数中调用的其实就是HDevelop帮助文档中read_image (Image, 'fabrik')算子的C++接口。

我们使用VS2010测试这个导出的函数,新建一个工程并添加一个空的文件,在Halcon导出的cpp文件中摘录如下代码:

#ifndef __APPLE__
#  include "HalconCpp.h"
#  include "HDevThread.h"
#  if defined(__linux__) && !defined(NO_EXPORT_APP_MAIN)
#    include <X11/Xlib.h>
#  endif
#else
#  ifndef HC_LARGE_IMAGES
#    include <HALCONCpp/HalconCpp.h>
#    include <HALCONCpp/HDevThread.h>
#  else
#    include <HALCONCppxl/HalconCpp.h>
#    include <HALCONCppxl/HDevThread.h>
#  endif
#  include <stdio.h>
#  include <HALCON/HpThread.h>
#  include <CoreFoundation/CFRunLoop.h>
#endif

using namespace HalconCpp;
using namespace std;

int main()
{
	HObject  ho_Image;
	ReadImage(&ho_Image, "1.jpg");
    return 0;
}

设置VS2010

1.注意Halcon版本与VS2010中的应用程序对应 如果Halcon是64位的,那么其对应的lib同样是64位,这是选择Win32程序的话会导致无法加载库,所以我们需要想VS2010中的Win32改成X64。

这里写图片描述
这里写图片描述

2.引入必要的头文件 在(项目属性)–(配置属性)–(C/C++)–(常规)–“附加包含目录”中添加路径:

$(HALCONROOT)/include
$(HALCONROOT)/include/halconcpp
这里写图片描述
这里写图片描述

3.包含库路径 在(项目属性)–(配置属性)–(链接器)–(常规)–“附加库目录”中添加库路径:

 $(HALCONROOT)/lib/$(HALCONARCH)
这里写图片描述
这里写图片描述

4.添加库 在(项目属性)–(配置属性)–(链接器)–(输入)–“附加依赖项”中添加库:

halconcpp.lib
这里写图片描述
这里写图片描述

5.添加dll文件 将缺少的dll文件放进工程目录源文件所在的位置。Halcon的dll文件在*****\bin\x64-win64路径下。

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多