工具/原料
· win7 x64
· Visual Studio 2010
· Halcon11
因为导出的时候选择的是单个文件 ,为了单独调试方便,所以不能其它代码混合。在头文件中新建一个HalconAction.h;在源文件里面新建一个HalconAction.cpp
添加C++代码
将下面的程序复制粘贴到HalconAction.h中
#ifndef__APPLE__
# include "HalconCpp.h"
#else
# ifndef HC_LARGE_IMAGES
# include<HALCONCpp/HalconCpp.h>
# else
# include<HALCONCppxl/HalconCpp.h>
# endif
#endif
usingnamespace HalconCpp;
voidaction();
将void action()及其里面的程序导入HalconAction.cpp,并且在前面加上#include"stdafx.h"
#include"halconAction.h
配置如下:
#include "stdafx.h"
#include "halconAction.h"
void action()
{
// Local iconic variables
HObject ho_Image;
ReadImage(&ho_Image,"fabrik");
}
项目——属性——配置管理器——平台(Win32)下拉列表——新建——x64
(最好是先改成x64然后再去配置VC++目录和链接器,因为在win32下配置后到了x64里面又要重新配置)
VC++——包含目录中添加
C:\ProgramFiles\MVTec\HALCON-11.0\include\halconcpp;
C:\ProgramFiles\MVTec\HALCON-11.0\include;$(IncludePath)
在VC++——库目录里面添加
C:\ProgramFiles\MVTec\HALCON-11.0\lib\x64-win64;
在链接器——输入——附加依赖项——添加HalconCpp.lib
最后生成解决方案
参考:http://www.ihalcon.com/read-1362.html
每个工程都要在“项目->属性->配置属性->VC++ 目录”中一一设置如halcon之类的公共库文件目录是件很麻烦的事,一番搜索后才知道原来VS 2010是在Microsoft.Cpp.Win32.user属性页中设置公共的VC++ 目录。
· 导出halcon11代码为C++代码,经常提示不识别或名空间名字没找到。
首先halcon11导出如果没有勾选10,默认产生C++代码,对应的主要头文件是HalconCpp.h和using namespace HalconCpp
配置如下:
头文件 # include "HalconCpp.h" ,代码在导出时已经自动生成 。using namespace HalconCpp;代码导出时已经自动生成。 在VC++目录,配置include路径,一个是默认Halcon安装文件夹下面的include,另外一个根据你导出的代码而定。
· VS2010 项目的VC++目录不共用,所以需要每个项目配置路径(网上有配置一次的方法)。以前这个VC++目录是在工具 –>选项的下拉框里面,配置好一次路径,其它项目跟着改。10起是每个项目有单独的一个。就是说x64和win32的情况下是不通用的。配置好win32后如果要用X64,就要用win32。