一,问题描述
当使用C# 联合halcon进行编程使用时,对于新手,有两种错误提示比较常见:
- 1️⃣
System.NullReferenceException:“未将对象引用设置到对象的实例
,此种情况可能只是提示调用函数处某个参数对象为空,调用抛出异常,没具体提示是C#还是halcon方面出了问题,会比较头疼!如下:
- 2️⃣
HALCON error #7200: Wrong number of output object parameter in operator get_image_pointer1”
,这个7200错误明确提示这个获取图像指针函数方面有问题,但是我明明不是调用这个算子函数为什么会出现这个算子错误呢?如下显示:
二,解决方法
2.1问题特征
可以发现这些问题发生的共同特征:
- C# 或halcon算子调用没问题;
- 在最开始的一段使用C#版本的halcon算子调用中发生;
- 基本会是出现这两种错误提示!
- 新手调用halcon与C#的时候,老手基本不会发生!
2.2解决方法
- 如果符合2.1特征,那么你可以在这里找到解决方法,究其原因是,在C#引用halcon的话,除了要引用halcondonet.ll(halcondonetxl.dll)的接口库外,还要把底层的halcon函数库给放在生成程序目录下(Debug或者Release目录下),如果你引用的是halcondonet.dll,就要把halcon.dll放在生成程序的目录下,如果引用的是halcondonetxl.dll的话,那就把halconxl.dll放在对应的目录下。
- 一句话说明就是:
halcon底层库(halcon.dll或halconxl.dll)和函数接口库(halcondonet,dll或halcondonetxl.dll)都要出现在生成程序目录下!
。- 所以对于新手来说,避免这个问题,最好的方法就是,先引用halcon的接口函数库,生成程序目录后,再把底层库放在程序目录下!
- 把方法做好,确保你的算法和调用没问题,就放心调用完事!
最后,文中若有不足,敬请批评指正!!!