DllNotFoundException

检查运行dll是否需要其他的dll

这个是报错比较常见的原因。
在Unity中报DllNotFoundException有可能是找不到的dll,它需要引用的其他dll不存在。

这个不仅仅是适用于Unity,大多数dll的运行是需要其他dll的支持的,所以有时候会出现在电脑A上能运行该dll.但是换一台电脑就找不到对应的dll的情况,这个时候可以下载对应的工具Dependency Walker,该软件可以用来查找exe和dll需要的关联文件,可以在这里下载,下载后打开exe,直接在file里打开该dll,然后查看下面显示缺失的dll,找到后补上该dll即可。

在这里插入图片描述

具体Dependency Walker的使用方法可以自行百度,这里提一点重要的信息,由于Dependency Walker有很久没有进行更新维护了,所以一些老的dll可能是Windows7这种老系统使用的dll,如果显示API-MS-WIn-Core类似的dll缺失,也属于正常情况,可以不用管它,具体可以忽略的dll格式如下:

API-MS-WIN-  .dll
EXT-MS-WIN-  .dll
IESHIMS.dll
EMCLIENT.dll
DEVICELOCKHELPERS.dll

如下图所示是正常的:
在这里插入图片描述
这里需要其他dll,可能放在系统盘目录下,也可能只需要放到工程目录下,我遇到的情况是要放工程目录下的,就是Assets/Plugins/x64下面。

Dependency Walker 使用方法说明

另外说一下查看dll是64位还是32位的方法以及对应的坑
在这里插入图片描述

打开这里 输入

dumpbin -headers "D:\Unity Projects\Formal\NzviewerFJ\nzviewerfj\Assets\Plugins\x64\avdevice-57.dll"

在这里插入图片描述

得到的结果

最后一个是路径,亲自测试过,要注意这个黑窗口如果用箭头上键找到上次执行的命令,再执行,
即使相同的路径下的dll已经更换,但是执行的依然是手打输入时候的结果。所以如果想偷懒还是将命令复制到记事本,然后更换相同文件夹的下的dll,然后再粘贴再执行,得到的信息就是更换后的dll了。

检查自己的dll对应的平台是不是对的

比如自己用的软件是64位的,那么就要使用对应平台的dll,而且最好是用Release版本的,Debug版本的可能会出问题

检查自己路径和对应的代码有没有写错

比如在Unity中使用,必须把对应的dll放在Assets目录下的Plugins文件夹下,64位的dll放在Plugins的x64文件夹(文件夹叫x86_64也可以)内,32位的放在x86文件夹内,再比如在C#中写[DllImport(“dllName”, EntryPoint = “function”)]的时候,dll的名字后面不要加.dll。
具体操作可以参考 这里

可能是dll内部本身有问题

比如我实际使用中,先是显示两条Warning,Plugins:Falied to load ’ Assets/Plugins/x64/Debug/myDLL.dll’ with error’ 动态链接库(DLL)初始化例程失败, 然后报错DLLNotFoundException,这个时候其实不是DLL找不到,而是dll在初始化的时候报错了,Unity这里还是有点坑的,因为一但出问题,它只会报DLLNotFoundException,然后我从Unity这边调试我的dll,果然发现是static成员的构造过程中出现了错误,具体从Unity调试C++dll的方法可以参考这里

如果以上办法都不能解决,可以参考以下链接: 这里

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
dllnotfoundexception: 无法加载 dll“..\hcnetsdk.dll”: 找不到指定的模块。这个错误通常出现在使用某个程序或应用程序时,而该程序或应用程序需要依赖于一个名为"hcnetsdk.dll"的动态链接库(DLL)文件。然而,由于系统无法找到该DLL文件,因此无法加载它。 要解决此问题,可以尝试以下几个方法: 1. 确保"hcnetsdk.dll"文件存在于指定的路径中。检查一下该文件是否存在于正确定的位置,并且文件名是否正确。如果文件不存在或文件名拼写错误,可以尝试重新安装相关的程序或组件,以便正确安装"hcnetsdk.dll"文件。 2. 检查环境变量。确保系统的环境变量设置正确,特别是包含了正确的DLL文件路径。可以通过以下步骤检查环境变量:右键点击“我的电脑”(或“此电脑”)-> 属性 -> 高级系统设置 -> 环境变量。在用户变量和系统变量中查找包含了正确路径的变量。 3. 查找和安装所需的程序和组件。有时,使用某个程序或应用程序需要特定的程序或组件的支持。可能需要下载和安装这些程序或组件,以便正确加载"hcnetsdk.dll"文件。可以尝试访问相关的官方网站或第三方资源网站,查找所需的程序或组件,并按照说明进行安装。 4. 执行系统更新。可能存在一些系统更新或补丁可以修复与DLL文件加载相关的问题。可以尝试执行系统更新,以确保系统已经安装了最新的修复程序。 如果上述方法都无效,可能需要考虑联系相关的技术支持团队,寻求更专业的帮助。他们可能会提供更具体的解决方案,以解决无法加载"hcnetsdk.dll"文件的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值