问题标签 [dllnotfoundexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
93 浏览

c# - 如何在单声道中正确使用我的 .so 文件?

我试图在我的项目中使用带有 .so 文件的 DllImport,当我使用绝对路径时,没有问题,但是,当我只使用文件名时,它不起作用。我检查了输出目录,该文件就在 .exe 文件旁边,当我在 Windows 的控制台应用程序中尝试此操作时,它完全可以工作。

所以我尝试在使用 extern 方法之前对其进行验证,如下所示:

外部方法是:

即使有以前的验证,它也会抛出 DllNotFoundException !!!显然我错过了一些东西,但我不知道它是什么。

我该如何解决?

如前所述,绝对路径有效,但我不能使用它。我检查了输出目录,文件就在那里 通过验证,我可以看到文件就在那里,但是当我尝试使用它时......它不起作用。

当我使用绝对路径并使用他的函数时,我希望使用 .so ,但实际结果是一个例外。

0 投票
1 回答
55 浏览

c# - 用户控件执行时未找到其他库

我正在开发一个 WPF 解决方案,我在一个单独的(包含的)项目中有一个用户控件,这个用户控件引用 c++ dll,包含在一个 post 脚本中:

问题是主项目在执行时没有找到这些 dll。

消息“无法加载 DLL 'libhelper.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)”

我想我需要分发我的Bin文件夹的全部内容。

如何在主项目中包含这些额外的 dll?

0 投票
1 回答
64 浏览

c++ - OpenSsl在64位模式下编译源openssl后添加引用,出现错误

我以前编译过 32 位的 openssl 源代码并在我的 c++ 项目中使用它。但由于某些原因,我想让我的程序为 64 位,并在程序启动时引用我创建的 dll 时出错。

我的 c++ 程序 A.dll 使用 openssl 库。在x86中使用它之前没有任何问题,B.dll使用的是我自己编译的openssl 32bit

System.DllNotFoundException:无法加载 DLL 'A.dll' 或其依赖项之一:找不到指定的模块。(0x8007007E)

我在 B.exe 中使用 A.dll。B.exe 在 c# 中,在我的电脑上使用 x86 A.dll 时可以,但是当将所有 dll 和 b.exe 复制到另一台计算机时,它将无法工作并出现上述错误,因此决定在 64 位编译 openssl,并且在 A.dll 中使用 openssl 64bit 时,会出现 c++ 中的链接错误。

在 x86 之前,我引用了 ssleay32.lib 和 libeay32.lib。

但是在 64bit openssl 编译时找不到这些库,只有 libcrypto.lib 和 libssl.lib。

我怎么能摆脱这个问题?

0 投票
1 回答
49 浏览

.net - Windows 8.1 中未找到 Emgu DLL 和错误图像格式异常

我有一个使用 Emgu.CV v 3.1 的 .Net 应用程序,它在 Win 10 上安装后运行正常,但在 Win 8.1 64 位上失败,出现类型初始化程序异常,dll 'cvextern' 的 InnerException DLLNotFound,安装在 x64包含 .exe 的主安装文件夹的子文件夹。将 cvextern dll 复制到主安装文件夹(过去已解决该问题)会导致 BadImageFormat 异常。

0 投票
1 回答
543 浏览

c# - 在 Unity 中找不到 DllNotFound

我正在尝试在 Unity 上使用我的 C++ dll,因此我将它复制到 Assets/Plugins 和项目的根目录中,但是当我使用 Play 按钮或运行构建生成的 .exe 文件时出现 DllFoundException。当我在 DllImport 中使用 dll 文件的绝对路径时,它甚至不起作用。

但是,当我构建和运行项目时它工作正常。

统一代码

Dll 是使用以下配置构建的:Release/Win32。

这是 dll 导入设置: 在此处输入图像描述

0 投票
0 回答
80 浏览

asp.net - 在 ASP.NET 网站中找不到来自不同安装文件夹的 DLL 依赖项

我创建了一个带有 WCF 服务的 .NET Framework 4.7.2 网站。要通过此服务公开数据,我必须从 C:\InstallLocation 引用 Copy Local = False 的第三方 DLL。该网站在运行时加载此 DLL,但在访问 DLL 中要求它在同一 InstallLocation 文件夹中加载辅助 DLL 的功能时出现错误。我用 Process Monitor 验证了 W3WP.exe 在 C:\InstallLocation 中找到了主 DLL,但 W3WP.exe 根本无法在 C:\InstallLocation 中查找辅助 DLL。应用程序错误是预期的,

无法加载文件或程序集“[assembly-info-ommitted]”或其依赖项之一。该系统找不到指定的文件。

我还在控制台应用程序中测试了完全相同类型的引用,它没有问题。进程监视器显示在 C:\InstallLocation 中查找辅助 DLL 的可执行文件。

有没有办法配置 .NET Web 应用程序以允许进程在与引用的主 DLL 相同的目录中查找?我尝试了以下但没有(完全)成功:

  • 将 C:\InstallLocation 添加到我的系统路径(并重新启动)。好像没什么影响。我在应用程序启动时验证了添加的路径确实出现在 Environment.GetEnvironmentVariable("PATH") 中。
  • 将 C:\InstallLocation 移至我的 Web 根目录并尝试 <probing privatePath="CopiedLocation"。这解决了最初的 DLL 引用问题,但仍然显示错误,但依赖于不同的 DLL。我不认为这将是一个可行的解决方法。
  • 电影 C:\InstallLocation 到 bin 文件夹并注释掉。结果与上述相同。
  • 授予应用程序池用户对 C:\InstallLocation 的完全权限。用户:IIS APPPOOL\{网站名称}、IUSR、IIS_IUSRS

编辑

我已经实现了一个初始化程序,如此处所示,https://stackoverflow.com/a/16867088/2544926。我已更改代码以检查 C:\InstallLocation 中是否存在 DLL 以从该文件夹加载 DLL。从进程监视器的输出来看,这似乎让我更接近了。但是,我在此过程的后期看到了一个错误。这是我现在看到的错误(多级异常)。

'<Module>' 的类型初始化程序引发了异常。

在导致 C++ 模块加载失败的主要异常之后发生了嵌套异常。

'<Module>' 的类型初始化程序引发了异常。

C++ 模块在 vtable 初始化期间无法加载。

无法加载文件或程序集“XYZ,Version=NNNNN,Culture=neutral,PublicKeyToken=NNNNNNNNN”或其依赖项之一。该系统找不到指定的文件。

有趣的是,在我的自定义 Assembly Initializer 代码中,我看到 XYZ.DLL 是从 C:\InstallLocation 加载的。这个 C++ 模块是否可能试图以不同的方式或以 ASP.NET 不支持的方式加载它?

0 投票
3 回答
1073 浏览

r-package - 无法加载共享对象“C:/Program Files/R/R-4.0.5/library/stats/libs/x64/stats.dll”

[![ 你好呀!!

我在 Windows 10 操作系统上使用 R 4.0.5

我已经安装了 rtools40-x86_64 并使用以下命令将make it实用程序的位置按照此处的建议放置

但是,在重新启动 R 后,它给了我下图中的错误。或以下

我已经卸载了 R、RStudio、Rtools,删除了 C、Documents 和 RStudio 注册表中的所有相关文件,然后重新安装。但同样的错误仍然存​​在。

在一篇相关的文章中,他们提到了丢失的二进制文件,我使用了命令

但它是负面的。

我尝试更新 stats 包,但是一旦我调用它,它就会给出同样的错误。

每个需要 stats 包的包都会给出完全相同的错误。

有谁知道如何克服这一挑战?

提前致谢。] 3 ] 3

0 投票
0 回答
78 浏览

android - Unity3D - Android - DllNotFoundException - shimat/opencvsharp

这是我在 stackoverflow o/ 上的第一篇文章!

我用 Unity 制作了一个 RA 应用程序。我发现https://github.com/shimat/opencvsharp有 dll 和 .so。

它在 Windows 上运行良好,但在我在 android 上导出时却不行。

我使用金块OpenCvSharp4.runtime.linux-arm来获取libOpenCvSharpExtern.so.

我的工作树是:Plugins/Android/libs/libOpenCvSharpExtern.so

我需要做什么?谢谢 =)

0 投票
1 回答
241 浏览

c# - Unity 插件的 .so 文件:导致 DllNotFoundException 的头文件?

背景:我正在为 Unity 中的机器人创建可视化。机器人的软件(在这种情况下是模拟器)全部在 MATLAB Simulink 模型和 MEX 文件中的 C/C++ 代码中实现。

为了帮助与其他应用程序通信,它们使用共享内存。因此,检索和推送相关数据相当简单,因为可以只使用 DB get/put 与本地实时数据库进行交互。为了在这里不了解太多不相关的细节,这导致了一个非常简单的单个 C 文件,我现在只打印其中一个机器人的 x 和 y 坐标。由于这一切都在 Ubuntu 20.04 上运行,我已将其转换为可执行文件,可在终端中正确打印机器人位置。

问题:然而,我现在面临着将这些数据导入 Unity 的挑战。我试图从这个 C 文件创建一个 .so 文件,以便它可以用作 Unity 中的插件。然而,我似乎总是收到一条DllNotFoundException消息。

为了让您了解我所做的事情,这里是 C 文件的简化印象:

最初,我尝试将其转换为 .so 文件并将其放入Assets/Plugins/Linux并在场景中创建了一个简单的脚本,其中包含以下内容:

但是我似乎总是得到DllNotFoundException: <pluginname>. 遇到此问题的大多数其他情况似乎在将 .so 文件类型传递到 C# 文件中或将其放置在错误的文件夹中时都包含了它。

然而,非常感谢他们的这个 repo:https ://github.com/Unity-Technologies/DesktopSamples我实际上找到了一个有效的例子。以此为基础并逐段添加我的代码,我发现一旦我到达使用包含的头文件中的某些内容的部分,它就会再次开始抛出 DllNotFoundException。例如,在某些时候,本地 RTDB 通过调用DB_init()来自rtdb_api.h. 这个头文件位于/usr/include/rtdb. 我也试过把它/usr/local/include/rtdb放进去,但没有用。我也尝试更明确地说明头文件的路径,但那里也没有更改。

通常,这会导致我提出以下问题,非常感谢对其中任何一个问题的回答:

  1. 如何解决由 .so 文件的依赖项引起的这个问题?(理想情况下,不必对头文件本身/位置做很多魔术,因为我希望在不更改当前代码库的情况下实现这一点)
  2. 有什么办法可以得到更详细的反馈吗?目前似乎错误地构建了 .so 文件,没有在 C# 文件中正确引用它,头文件等问题现在总是导致 DllNotFoundException。最好有一些比所有内容都相同的异常更详细的错误报告。
  3. 有没有更好/替代的方法来实现我希望在这里做的事情(比如在后台启动可执行文件并从这里提供/推送数据)?

回顾:

操作系统:Ubuntu 20.04

统一版本:2020.3.13f1 LTS

希望使用 .so 文件或其他方法将 C/C++ 文件中的数据导入 Unity。当前的尝试导致包含的头文件出现问题。