问题:
假设之前是用halcon12的dll库写的视觉程序,现在要部署到机台上,新买的加密狗是20.11版本的,为了保证兼容性,可以把原来用到的halcon的dll库替换到20.11版本的。
问题背景:
- halcon加密狗理论上只向下兼容一个版本。所以库也只兼容下一个版本的库。
- 实测跨多个版本,有时候也可以运行,但是不保证稳定性。
- 22可以兼容到20版本,
- 20可以兼容到18版本,
- 18可以兼容到13版本,
- 13版本兼容到12版本。
- 12版本兼容到11版本。
C#程序为例:
1.在视觉程序的目录下找到halcon.dll 和halcondotnet.dll
右键属性,查看2个库的文件版本信息。这里可以看到程序用到的库是12.0.3.0版本的。
2.在安装了halcon20.11steady版本的主机上,到安装目录下把这两个库拷贝过来,两个库的文件版本信息应该如下图所示:
这样运行原来程序的exe是会报错的,如下图所示:
3. 运行视觉程序的源文件,重新编译。
编译后,debug目录下新生成的exe可以重新打开不报错。