QQ登录

只需一步,快速开始

HALCON11代码导出与VC6配置

[ 复制链接 ]
HALCON11导出与VC6配置
1.HALCON11导出代码生成C语言源文件
在HALCON11中打开一例程或编写一项目后,要导出代码在VC6中使用;
在菜单栏上:文件-》导出。弹出对话框设置如图

HALCON11代码导出与VC6配置

HALCON11代码导出与VC6配置

在指定的目录就会多出刚生成的.CPP类型的源文件;
2.VC6配置及使用代码
上一步导出的是基于WIN32控制台应用程序,可直接建立一空的控制台程序,添加上面的文件到工程就可编译运行,会发现有很多错误出现;
所以 编译前还得进行VC6的配置,也就是要设置HALCON的头文件,链接文件目录:
菜单栏 à工程-》设置;弹出对话框;()
C/C++标签页下à 分类选择 预处理器,定位到 附加包含路径 编辑框中;具体也可参照下图

Capture.JPG
在上面的位置里添加如下代码
$(HALCONROOT)\include,$(HALCONROOT)\include\halconcpp
用于包含HALCON11的头文件目录;
HALCONROOT为HALCON安装时创建的系统变量 ,其值就为HALCON11的安装目录,如d:\Program Files\MVTec\HALCON-11.0; 其值的具体查看位置,在WIN7为:
桌面上,我的电脑图标上,鼠标右键选择属性;
弹出对话框左上角,点击高级系统设置;
再弹出对话框,选择高级标签页,点击环境变量,在系统变量分类里就可找到;

链接库目录的设置类似,在VC6中,菜单栏 à工程-》设置;弹出对话框;
链接标签页下à 分类选择 输入,定位到 附加库路径 编辑框中;具体也可参照下图


HALCON11代码导出与VC6配置

HALCON11代码导出与VC6配置


在上面的位置里添加如下代码
$(HALCONROOT)/lib/$(HALCONARCH)
HALCONARCH也是系统环境变量,其值为x86sse2-win32,就安装目录下的一子文件夹
最后在上图,对象/库模块中,添加halconcpp.lib,进行使用这个链接库
这样整个项目就可编译运行

3.上面介绍的是WIN32控制台上的设置,且设置仅对当前工程有效,下面在建立基于MFC的框架,且配置对其他工程也长效;
1>新寻MFC单文档程序,在预编译头文件StdAfx.h包含HALCON头文件及链接库文件(可从导出的文件中复制使用)
#ifndef __APPLE__
#  include "HalconCpp.h"
#else
#  ifndef HC_LARGE_IMAGES
#    include <HALCONCpp/HalconCpp.h>
#  else
#    include <HALCONCppxl/HalconCpp.h>
#  endif
#endif
using namespace HalconCpp;
#pragma comment(lib,"halconcpp.lib")//为自己额外手工添加包含进链接库文件
2>在VC6 菜单栏上,工具->选项;弹出对话框,目录标签页下,目录里选择include files 选项,之后设置HALCON的头文件路径,如图

HALCON11代码导出与VC6配置

HALCON11代码导出与VC6配置


目录里选择 Library files选项,进行HALCON链接库目录的设置,如图

HALCON11代码导出与VC6配置

HALCON11代码导出与VC6配置


1.全部设置完成之后就可复制事先从HALCON导出的代码,进行编译使用,可能会出现与WIN32函数名重复,编译不通过的情况,错误函数前可加上HALCON的作用域标识符HalconCpp::
例如编译代码CloseWindow(HDevWindowStack:op());会出现函数不带一个参数的错误,这是因为编译器将此函数看作为SDK中的成员函数(SDK内的此函数带两个参数);
所以可以在此函数前加上HALCCON的作用域便可,
如HalconCpp::CloseWindow(HDevWindowStack:op());

2.如有下面报错error C2485: 'deprecated' : unrecognized extended attribute
error C2059: syntax error : '('
可以包含头文件前面添加
#define HC_NO_LEGACY_WARNING

文章介绍的两方法在VC6上验证通过!



回复

使用道具 举报

大神点评(3)

快速回复 返回列表 客服中心 搜索