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

Halcon中除了依赖于HDevelop平台的操作,其他算子都支持了C++语言接口,比如:
read_image()算子:
Halcon学习(四) 导出C++代码,在VS2010下编译_第1张图片
而dev_display()则没有C++的接口:
Halcon学习(四) 导出C++代码,在VS2010下编译_第2张图片

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

这样在路径下我们会看到一个.cpp文件:
Halcon学习(四) 导出C++代码,在VS2010下编译_第4张图片

这个文件中,功能已经被定义到了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 
#  endif
#else
#  ifndef HC_LARGE_IMAGES
#    include 
#    include 
#  else
#    include 
#    include 
#  endif
#  include 
#  include 
#  include 
#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。
Halcon学习(四) 导出C++代码,在VS2010下编译_第5张图片

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

$(HALCONROOT)/include
$(HALCONROOT)/include/halconcpp

Halcon学习(四) 导出C++代码,在VS2010下编译_第6张图片

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

 $(HALCONROOT)/lib/$(HALCONARCH)

Halcon学习(四) 导出C++代码,在VS2010下编译_第7张图片

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

halconcpp.lib

Halcon学习(四) 导出C++代码,在VS2010下编译_第8张图片

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

你可能感兴趣的:(#,Halcon,Framework,&,Lib,Halcon,visual,studio,2010,C++)