网站首页 > 编程文章 正文
大家好,我是朱老师
前几天一个学员在学习c#调用halcon动态库时。一直报错:System.DllNotFoundException:“无法加载 DLL“halcon”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。”,不知道什么原因。 报错代码截图如下:
当时开发背景是这样的:该同学在自己电脑A上开发,可以编译,运行成功。然后将代码部署到了另一台机器B上。安装了vs后,编译没有问题,一点击运行按钮后,就报了上面这个错误了 。折腾了好久,还是没有什么进展。其实新手们对这个问题往往很头疼。不知道是哪个依赖没有添加进来。下面我们就对这个问题进行详细分析,并给出解决方案。
问题分析:
这个代码第27行报错提示很清楚:System.DllNotFoundException:“无法加载 DLL“halcon”: 找不到指定的模块。翻译成中文就是没有找到dll:halcon,顺着这个思路我们去运行正常的A电脑上搜索halcon.dll相关的动态库,结果发现确实存在有这样的一个动态库:halcon.dll。然后再去B电脑上搜索halco.dll,没有找到。然后我们将halcon.dll文件复制到应用程序FindBoltCount.exe相同目录下,程序文件结构如下:
该同学再次运行FindBoltCount.exe程序, 程序启动成功。
点击寻找按钮,寻找螺栓成功!效果如下:
问题结论:
这个问题是开发部署过程中经常遇到的问题,解决方法也不止一个:下面我们梳理一下解决方法:
1)简单解决方法:把缺少的模块dll(如halcon.dll、halcondotnet.dll)放到运行目录,可以解决。这种方法适用于现场应急状态,适用于临时解决比较着急的现场问题的临时方案。但是每个工程都要单独添加进去(不推荐)
2)一般解决方法:把halcon.dll等相关库放到system32下面去,应用程序运行时,会自动在该目录下寻找相关依赖,一般情况下也没有必要这样去做。
3)根本解决方法:把Halcon运行目录添加到系统环境变量中(windows系统环境支持都需要在PATH目录),因为这个Halcon运行目录里面还有很多视觉采集相关的dll库需要依赖,特别是很多人写halcon的相机采集的时候,其实整个目录里面的dll都是需要依赖的,也就是halcon运行库Runtime,所以上面那种简单解决方法是不能有效解决其他halcon动态库的使用需求的,你要拷贝好多依赖,把整个halcon运行目录bin都拷贝到system32下面去?没必要。
所以我们最终这样做:Win10打开设置:此计算机->右键属性->系统“高级系统设置”->系统属性->高级->环境变量”。 然后将halcon安装目录的bin文件夹路径添加到path属性,以分号结尾即可
以上就是初学者在学习c#调用halcon等第三方动态库时常见的问题。总结如下:
1:动态库编译错误:添加引用,把第三方动态库添加到vs程序里面。
2:动态库运行错误,将动态库添加到程序运行目录,或者将动态库文件夹添加到windows环境变量配置中
猜你喜欢
- 2024-10-25 C#常见技能_机器视觉检测(c#视觉检测控件)
你 发表评论:
欢迎- 06-24一个老爸画了超级有爱的365幅画 | 父亲节献礼
- 06-24产品小白看魏则西事件——用产品思维审视百度推广
- 06-24某教程学习笔记(一):13、脚本木马原理
- 06-24十大常见web漏洞——命令执行漏洞
- 06-24初涉内网,提权那些事(内网渗透提权)
- 06-24黑客命令第16集:47种最常见的**网站方法2/2
- 06-24铭说 | 一句话木马的多种变形方式
- 06-24Java隐藏的10倍效率技巧!90%程序员不知道的魔法方法(附代码)
- 最近发表
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)