问题标签 [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.
c# - 如何在单声道中正确使用我的 .so 文件?
我试图在我的项目中使用带有 .so 文件的 DllImport,当我使用绝对路径时,没有问题,但是,当我只使用文件名时,它不起作用。我检查了输出目录,该文件就在 .exe 文件旁边,当我在 Windows 的控制台应用程序中尝试此操作时,它完全可以工作。
所以我尝试在使用 extern 方法之前对其进行验证,如下所示:
外部方法是:
即使有以前的验证,它也会抛出 DllNotFoundException !!!显然我错过了一些东西,但我不知道它是什么。
我该如何解决?
如前所述,绝对路径有效,但我不能使用它。我检查了输出目录,文件就在那里 通过验证,我可以看到文件就在那里,但是当我尝试使用它时......它不起作用。
当我使用绝对路径并使用他的函数时,我希望使用 .so ,但实际结果是一个例外。
c# - 用户控件执行时未找到其他库
我正在开发一个 WPF 解决方案,我在一个单独的(包含的)项目中有一个用户控件,这个用户控件引用 c++ dll,包含在一个 post 脚本中:
问题是主项目在执行时没有找到这些 dll。
消息“无法加载 DLL 'libhelper.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)”
我想我需要分发我的Bin文件夹的全部内容。
如何在主项目中包含这些额外的 dll?
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。
我怎么能摆脱这个问题?
.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 异常。
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 不支持的方式加载它?
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 包的包都会给出完全相同的错误。
有谁知道如何克服这一挑战?
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
我需要做什么?谢谢 =)
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
放进去,但没有用。我也尝试更明确地说明头文件的路径,但那里也没有更改。
通常,这会导致我提出以下问题,非常感谢对其中任何一个问题的回答:
- 如何解决由 .so 文件的依赖项引起的这个问题?(理想情况下,不必对头文件本身/位置做很多魔术,因为我希望在不更改当前代码库的情况下实现这一点)
- 有什么办法可以得到更详细的反馈吗?目前似乎错误地构建了 .so 文件,没有在 C# 文件中正确引用它,头文件等问题现在总是导致 DllNotFoundException。最好有一些比所有内容都相同的异常更详细的错误报告。
- 有没有更好/替代的方法来实现我希望在这里做的事情(比如在后台启动可执行文件并从这里提供/推送数据)?
回顾:
操作系统:Ubuntu 20.04
统一版本:2020.3.13f1 LTS
希望使用 .so 文件或其他方法将 C/C++ 文件中的数据导入 Unity。当前的尝试导致包含的头文件出现问题。