首页 > 代码库 > HalconMFC(一)之多版本配置
HalconMFC(一)之多版本配置
今天比较匆忙,还得写周六日考试扯P的PPT,就先这样开个头吧。我的电脑是win7,32位的系统,我用Halcon10.0。但是很多小伙伴的都是64位系统的,所以我用小伙伴的64位系统试过很多次用VC配置Halcon但是一直没成功,后来百度里面找相关错误,终于知道了原来Halcon没64位库,我得出的结论是64位环境下不能配置。可能很多人都在想我可以在64位的电脑上安装Halcon,为什么不可以配置呢?但事实就是这样,我在win7上先后用VC6.0绿色版,VC6.0企业版,VS2008和VS2010最后的出的错误都是一样的。于是我换用虚拟机Vmware里面的winxp的32位系统配置,最后成功了。下面是我的过程:
前言:Halcon中的/和\是有区别的,但是VC6.0中的好像没差别,这点我实验过。
1、Project菜单->Settings->Link,在Category下拉菜单下选择General(常规),在此属性页中的Object/library modules下面添加halconcpp.lib静态库。 (主需要键入就可以了)
2、 Project菜单->Settings->Link,在Category下拉菜单下选择Input,在此属性页中的Additional library path下面添加$(HALCONROOT)\lib\$(HALCONARCH)路径。
3、 Project菜单->Settings->C/C++,在Category下拉菜单下选择Preprocessor(预处理器),在此属性页中的Additional include directories下添加$(HALCONROOT)\include,$(HALCONROOT)\include\cpp
这里“$”是绝对引用的意思。无论你的halcon装在哪个盘的目录下,均可通过这个绝对引用来导入路径。
方案二(VS2008)
第一步:项目-》属性-》C++-》常规选项中,附加包目录下添加halcon头文件的路径
由于不清楚路径怎么搞得,所以我使用了两种路径方法:
E:\Program Files\MVTec\HALCON-10.0\include\cpp
E:\ProgramFiles\MVTec\HALCON-10.0\include
$(HALCONROOT)\include
$(HALCONROOT)\include\cpp
第二步:项目-》属性-》链接器 常规选项中,附加库目录中添加halcon的库路径
如:E:\Program Files\MVTec\HALCON-10.0\lib\x86-win32
第三步:项目-》属性-》链接器 -》输入项中,附加依赖项中添加“halconcpp.lib”
方法三(VC2010)这是黑土视频里面的文档
1. 新建一个MFC项目。
2. 在[项目属性]->[配置属性]->[C/C++]->[常规]->[附加包含目录]中添加包含路径:$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
如果使用的halcon版本是10.0以前的(包括10.0的),则这里的路径应为
$(HALCONROOT)\include;$(HALCONROOT)\include\cpp;
3. 在[项目属性]->[配置属性]->[链接器]->[常规]->[添加库目录]中添加库路径:
$(HALCONROOT)\lib\$(HALCONARCH);
然后在[项目属性]->[配置属性]->[链接器]->[输入->[添加依赖项]中添加库
halconcpp.lib;
4. 在头文件中添加语句:
#include”halconcpp.h”
那么,你会发现在项目的解决方案视图下,[外部依赖项]文件夹中已经出现了很多和halcon相关的头文件。
5. 添加名空间。你可以通过3种方式添加名空间。
(1)在每个函数和变量前加前缀
HalconCpp::HObject original_image, smoothed_image;
HalconCpp::ReadImage(&original_image, "monkey");
(2)在函数开始位置添加
int main(int argc, char *argv[]){
using namespace HalconCpp;
HObject original_image, smoothed_image;
ReadImage(&original_image, "monkey");
}
(3)全局添加
#include "HalconCpp.h"
using namespace HalconCpp;
6. 至此,编程环境已配置完毕,接下来就是如何调用halcon函数,
HALCON/C++ 接口提供了两种途径来调用HALCON算法,一种是函数调用,一种是类的调用。