关于不同版本Halcon编写的c++代码报错问题

本文介绍了在C++项目中使用Halcon遇到的问题,包括生成解决方案时的LNK错误和Halcon算子异常。通过更换对应版本的dll、头文件,以及添加halconcpp10.dll和halconcpp10.lib,成功解决了不同版本Halcon的兼容性问题,使得基于Halcon10的代码能在Halcon12环境下运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近收到一个客户发来的一个基于Halcon的C++软件工程,客户需要解决其中bug。将工程打开后发现有多处代码报错,通过配置好VS项目属性后代码报错消除,但接下来出现一系列问题。

问题1:生成解决方案报错

当对工程生成解决方案时VS报大量LNK2001及LNK2019的 无法解析外部符号错误,如下图:
链接错误
通过定位错误的位置,发现都为Halcon中的函数无法解析,根据网上搜到的方法,通过检查VS配置以及复制halcon.dll及halconcpp.dll至Debug目录下均无效,最后通过联系客户发现,客户使用Halcon10开发,而我电脑为Halcon12。由此联想到不同版本的dll无法通用故重新复制Halcon10版本的相关dll到Debug目录下,重新生成问题依旧。
再次考虑是否是不同版本的头文件问题,故又将Halcon10下的bin、lib、include文件夹复制到本机与Halocn12相似目录下,重新修改VS配置,将所有路径改为Halcon10相关路径下,此时重新生成发现已经生成成功。接下来就到了第二个问题。

问题2:Halcon算子报异常

生成解决方案后调试程序,客户代码中使用Halcon算子来实现打开相机并采图,但程序运行时提示无法连接相机,同定位发现为Halcon算子open_framegrabber报异常,算子参数都正确,获取错误代码为8600,查询后表示无法打开动态链接库&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值