DllNotFoundException

2023-05-16

检查运行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的方法可以参考这里

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DllNotFoundException 的相关文章

随机推荐

  • element-ui 文件上传类型及大小限制

    span class token operator lt span el span class token operator span upload ref span class token operator 61 span span cl
  • [php笔记]session

    session控制的思想是指能够在网站中根据一个会话跟踪用户 从此可以很容易实现与登录有关的功能 还能进行个性化的操作 如今可以使用 SESSION超级全局变量 1 开始session xff1a session start 2 注册ses
  • 使用mock.js模拟一组范围内数组

    模拟一组包含20个元素 xff0c 元素值大小在400 1200之间的数据 引入mock部分忽略 xff0c 需要用到Mock中的Random xff0c 需引入 span class token keyword const span Ra
  • flutter即时通讯聊天下拉刷新更多消息思路及代码实现

    2021 12 27更新 以下的解决方案会出现一些问题 xff0c 也是我后面才注意到的 因为将ListView进行了reverse xff0c 所以当消息只有一条的时候 xff0c 从视图上来看消息都是置于最底部的 xff0c 就比较不符
  • Usually, this means that the Expanded widget has the wrong ancestor RenderObjectWidget. Typically, E

    Usually this means that the Expanded widget has the wrong ancestor RenderObjectWidget Typically Expanded widgets are pla
  • flutter which requires SDK version >=2.14.0 <3.0.0, version solving failed

    已测试 xff0c 已解决 xff0c 传送门 xff1a https www jianshu com p 05daa2468029
  • vue 报错 TypeError: Object(...) is not a function

    1 可能是从外部引入的文件地址错了 xff08 我中了三次了 xff01 xff01 xff01 xff09 2 可能是import时没有加
  • 老毛子、华硕固件USB连接打印机,普通打印机变无线打印机

    1硬件及原因说明 本次作为打印机服务器的是Newifi Mini xff0c 1千兆wan口 xff0c 2百兆lan口 xff0c 1USB2 0接口 xff0c 打印机型号为canon ip1180 xff0c 年代非常久远 xff0c
  • ubuntu 18.04 安装 gurobi10.0.0

    安装准备 1 在官网下载安装包 gt 链接 link 2 校内ip直接在官网申请相应的licence gt 链接 link 3 校外ip需要给官方发送邮件申请 gt 链接 link 安装步骤 1 进入压缩包所在目录 xff0c 解压 tar
  • centos 7.9手把手搭建安装confluence 7

    1 准备环境 root 64 localhost cat etc redhat release CentOS Linux release 7 9 2009 Core root 64 localhost java version openjd
  • Debian10安装

    Debian 10 7 buster 使用bt文件下载 下载链接 xff1a https cdimage debian org debian cd current amd64 bt dvd 这次是在VMware Workstation上安装
  • Debian——网络/镜像配置

    文章目录 前言一 添加镜像源二 配置网络三 添加阿里云镜像 前言 安装完成之后 xff0c 配置apt源和网络 提示 xff1a 以下是本篇文章正文内容 xff0c 下面案例可供参考 一 添加镜像源 添加ISO文件 xff0c 并连接 ap
  • [Arch iwlist issue] Allocation failed

    之前在学校用 networkmanager 一直不好用 所以试了试手动调试 谁知道再用 iwlist scan时出错 allocation failed 查了一下google 原来是个bug 在无线太多环境下 xff0c 就会出现这种情况
  • 执行pth-winexe报错:ERROR: CreateService failed. NT_STATUS_ACCESS_DENIED.

    问题 xff1a 执行pth winexe时报错 xff1a pth winexe U test aad3b435b51404eeaad3b435b51404ee afc44ee7351d61d00698796da06b1ebf 192 1
  • Windows 远程端口号修改

    远程桌面端口号修改 xff1a 1 计算机 HKEY LOCAL MACHINE SYSTEM CurrentControlSet Control Terminal Server Wds rdpwd Tds tcp 修改PortNumber
  • CCSP2016-1 选座(ticket_chooser)

    CCSP2016 1 选座 xff08 ticket chooser xff09 题目描述 小 B 是一个电影迷 xff0c 只要有时间 xff0c 她就要去观摩最新的大片 但她不喜欢自己在 电脑或其他电子设备上观看 xff0c 而是喜欢去
  • manjaro配置VNC服务

    硬件 xff1a 开发板 xff1a Raspberry Pi 树莓派4B 4G内存 电脑 xff1a win10主机 系统 xff1a manjaro xff1a Raspberry Pi 4 KDE Plasma 21 06 一些准备工
  • iOS开发:关于UISearchController的简单使用

    UISearchController是iOS8以后推出的一个控件 xff0c 在以前的搜索控制器中 xff0c 需要将searchBar于tableView结合使用 有了这个控件之后 xff0c 做搜索控制器就很简单了 效果图 一 需要遵守
  • mac访问win7共享文件夹

    看了网上的一些操作步骤不是太详尽 xff08 对 xff0c 我就是嫌弃它图少 xff09 xff0c 特地制作一个教程来教大家使用mac访问win7的共享文件夹 一 首先我们创建一个用于测试的文件夹 我的台式电脑撤出来一根网线连接在了路由
  • DllNotFoundException

    检查运行dll是否需要其他的dll 这个是报错比较常见的原因 在Unity中报DllNotFoundException有可能是找不到的dll xff0c 它需要引用的其他dll不存在 这个不仅仅是适用于Unity xff0c 大多数dll的