问题标签 [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 投票
6 回答
11905 浏览

c# - Windows Vista:无法加载 DLL“x.dll”:对内存位置的访问无效。(DllNotFoundException)

我今天下午在一个装有 Windows Vista 的客户的盒子上进行测试(他有家,但我在 Business Edition 上进行测试,结果相同)。

我们使用 .DLL 获取计算机的硬件 ID。它的用法非常简单,我创建的示例程序有效。DLL 是来自 AzSdk 的 This。事实上,这在 Windows XP 下完美运行。然而,出于某种奇怪的原因,在我们的项目中(更大),我们得到了这个异常:

我不知道是什么导致了问题,因为我可以完全控制文件夹。该项目是 ac#.net Windows Forms 应用程序,一切正常,除了对外部库的调用。

我这样声明它:(注意:它不是COM 库,不需要注册)。

然后调用代码就很简单了:

当您创建示例应用程序时,它可以工作,但在我的项目中却没有。XP下工作正常。关于我应该在 Vista 中做什么来完成这项工作的任何想法?正如我所说,该文件夹及其子文件夹对“所有人”具有完全控制权。

更新:我没有安装 Vista SP 1。

更新 2:我已经安装了 Vista SP1,现在,在禁用 UAC 的情况下,即使是简单的示例也无法正常工作!!!:( 该死的维斯塔。

0 投票
5 回答
53091 浏览

c# - DllNotFoundException,但 DLL 存在

所以我使用了一个用于硬件随机数生成器的 SDK,它提供了一个名为 PsyREG.dll 的 dll 用于与之交互,以及一些用于使用 dll 中的方法的 c# 源代码。

它过去一直有效,但不知何故它停止了工作。我的手有点束缚,因为我目前实际上无法访问有问题的设备,所以我无法尝试很多事情......

然而,奇怪的是。dll在那里,它一直在同一个地方。Ahd 实际上File.Exists("PsyREG.dll")返回true,我已经仔细检查过,这与提供的 c# 源导入它的方式完全相同,例如[DllImport("PsyREG.dll")].

有任何想法吗?

0 投票
12 回答
17942 浏览

c# - 为什么 .NET 找不到 OpenSSL.NET dll?

编辑(整个问题,太不清楚了)

我想使用OpenSSL.NET

OpenSSL.NET 安装说明页面:安装

确保在应用程序的当前工作目录或 PATH 中有 libeay32.dll 和 ssleay32.dll。完成
在您的 .NET 项目中,添加对 ManagedOpenSsl.dll 程序集的引用。完毕

我已经把libeay32.dllandssleay32.dll放在了我的bin/Debugbin/Release目录中。我也把它们放进去了system32

这是我的完整代码:

我收到以下错误: 无法加载 DLL 'libeay32' http://localhostr.com/files/a719c5/Error.gif (无法加载 DLL 'libeay32')

这是进程监视器日志(根据要求): alt text http://localhostr.com/files/726a46/ProcMon.gif

我究竟做错了什么?为什么找不到DLL?

0 投票
2 回答
1499 浏览

c# - 从 P/Invoke 捕获 DllNotFoundException

找到带有解决方案的帖子如何处理失败的 DllImport?

我正在编写一个应用程序来检查操作系统版本以根据主机是使用 Vista 系列还是 NT 系列版本的 Windows 来执行不同的操作。如果是 Vista 系列,它会加载一些 DLL(使用 DllImport),但不使用这些。问题是,如果在没有这些 DLL 的旧版本 Windows 上使用,使用 DllImport 加载它们将在运行时导致 DllNotFoundException。

如何捕获/防止/忽略 DllNotFoundExceptions?尝试在我的未处理异常事件中将异常设置为“已处理”不允许应用程序继续。

0 投票
5 回答
66596 浏览

c# - System.DllNotFoundException: Unable to load DLL on window 2003

I have c++ dll using in my c# project, It ran fine on my window xp machine, but when i copy my debug project on window 2003 server (x64), i received error below, can any one tell me what is this problem, and how can i fix it.

Thanks

"System.DllNotFoundException: Unable to load DLL 'lib.dll': This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem"

0 投票
3 回答
9234 浏览

c# - 如何使用 sapnwrfc 库连接到 SAP?

我们的软件是用 C# 编写的,需要连接到 SAP。由于我们的一些客户使用旧版本的 SAP,而其他客户没有 SAP PI,因此我们无法通过 Web 服务进行连接。

我尝试通过 SAP NetWeaver 远程函数调用库 (sapnwrfc.dll) 连接到 SAP,如下所示:

  • 将 sapnwrfc.dll 和 NWRFC_6-20004550.SAR 中的其他 dll(即 icudt34.dll、icuin34.dll、icuuc34.dll、libicudecnumber.dll 和 libsapucum.dll)添加到 C:\WINDOWS\system32,以确保它们能够被找到的。
  • 在我的 C# 代码中,在类定义中添加以下内容:
        [DllImport("sapnwrfc.dll", CharSet = CharSet.Auto)]
        public static extern void RfcInit();
    以及应该完成工作的方法中的以下内容:
        RfcInit();

运行此代码会出现 DllNotFoundException:
无法加载 DLL 'sapnwrfc.dll':此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。(来自 HRESULT 的异常:0x800736B1)

运行标准 connect-to-C++-from-C# 示例
    [DllImport("user32.dll", CharSet = CharSet.Unicode)]
    public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);
    MessageBox(new IntPtr(0), "Hello World!", "Hello Dialog", 0);
工作正常。

有什么建议可以使这项工作正常工作(这样我们就不需要通过使用 JCo 编写 Java 代理来解决这个问题)?

0 投票
4 回答
19670 浏览

c# - DllImport 生成 System.DllNotFoundException

我在尝试dll从我的应用程序中使用非托管代码时遇到了一些困难(用 C# 框架 4.0 编写)。我正在使用dll导入如下

奇怪的是,当从我的开发环境(Windows XP)调用它时,它工作得很好,但是在生产服务器(Windows7)上它会产生以下异常:

System.DllNotFoundException: 无法加载 DLL ' C:\MGW_SDK.dll': 找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)在Comtpaq.AdminPack.SDKWrapper.fInicializaSDK() :第 30 行Comtpaq.AdminPack.AdminPaqRepository.InitializeSDK()C:\Work\AgroIn\AdminPaqRepository.cs

我已经运行了Dependency Walker,它显示以下依赖项存在冲突:C:\windows\system32\SHLWAPI.DLL

我已经尝试将其复制dll到我的部署目录

MGW_SDK.dll开启(如c:\路径所示)

我已经安装了 C 运行时库

我还注意到一些有趣的东西:在异常上,开发路径正在显示C:\Work\AgroIn\AdminPaqRepository.cs:line 30

这里还有什么问题?

编辑

extern我只用我使用的一种/dllimport方法构建了一个小型控制台应用程序,MGW_SDK.dll并且没有问题地运行它(没有DllNotFoundException任何问题),所以这似乎与我正在构建的应用程序(WCF 服务)有关。此服务托管在 WAS 上,但我仍然无法找到问题所在。

0 投票
4 回答
5313 浏览

zeromq - ZeroMQ DllNotFoundException 使用 .Net 绑定

我刚刚开始使用 ZeroMQ 并且正在尝试一些示例。我正在使用 C# 语言绑定并且遇到了获取 DllNotFound 异常的问题。

将 libzmq.dll 复制到 Windows/System32 后,我可以在我的开发机器上加载和运行示例,但是当我将内容移动到其他服务器时,尽管将 libzmq.dll 复制到示例运行所在的文件夹和进入 Windows/System32。

我已将 clzmq.dll 放入示例应用程序所在的文件夹以及 libzmq.dll 此外,我将 libzmq 放入 c:/Windows/System32。我正在运行 Windows Server 2003 Service Pack 2。当我检查机器环境变量时,WINDOWS/System32 在 PATH 变量中。我还确定使用 Release 构建 libzmq dll,而不是调试。

我可能不明白应该如何使用 ZeroMQ .Net Binding。我已将 clzmq.dll(.Net 绑定)作为参考添加到我的项目中,并且我假设 clzmq.dll 会自动引用 Windows PATH 变量 WINDOWS/System32 上的 libzmq。

有谁知道我是否弄错了。C# Binding 文档 ( http://www.zeromq.org/bindings:clr ) 指出“需要使 ZeroMQ 库文件可用以使绑定工作”,但它接缝我未能使其可用尽管将其复制到 PATH 变量中。

有没有人在使用 ZeroMQ .Net 绑定时遇到过 DLL not found 异常?

谢谢您的帮助,

0 投票
1 回答
1300 浏览

.net - 本机加载效果很好。从 .net 加载会出现错误无法加载 DLL 'my.dll': Invalid access to memory location

我正在尝试使用本机 dll,使用 DllImport。我收到这样的错误。

System.DllNotFoundException:无法加载 DLL“my.dll”:对内存位置的访问无效。(来自 HRESULT 的异常:0x800703E6)

当从本机代码调用时,该 dll正常加载(它从 delphi 应用程序中使用)。但是当我从 .net 代码中调用它时,它给了我上面的异常。

我已阅读此链接Windows Vista: Unable to load DLL 'x.dll': Invalid access to memory location。(DllNotFoundException),但没有解决方案有帮助。

DEP,管理权限并非如此。

PS 这种情况出现在 Windows 2008 服务器上。在 Win 2003 Server 和 XP 上一切正常。

0 投票
7 回答
1836 浏览

c# - 为什么我会在 Vista 而不是 XP 上得到一个 DLL not found 异常?

我有一个依赖于几个托管库的应用程序。这些托管库又依赖于一些非托管库。

当我将应用程序部署到运行 XP 的机器上时,它运行良好。当我在运行 Vista 的机器上执行相同操作时,我得到一个 DLL not found 异常。

我已经尝试了 VS2010 安装项目和 NSIS 安装程序来进行部署,这两种情况都是一样的。

为什么会发生这种情况?我能做些什么来绕过它?


更新 - 更多细节

  1. 两个安装程序都会检查 .NET 4.0 的安装并在需要时进行安装
  2. Vista 计算机是 64 位的,但安装会按预期定向到 x86 程序文件文件夹
  3. 在这两种情况下,我都有一个管理员帐户
  4. DLL 保存在与可执行文件相同的目录中
  5. 据我所知,文件被复制到正确的目录

更新 2

  1. 完整的错误在http://pastebin.ca/2046487
  2. DLL 是 Audiere.Net.dll,它是我的一个并且是一个托管库。

我不确定该错误是否意味着它找不到 Audiere.Net.dll,或者它是否无法加载它,因为它的依赖项之一找不到。


更新 3 - 来自进程监视器的东西

运行进程监视器(感谢 Mehrdad!)后,有几个条目的状态不是“SUCCESS”。其中一些是“未找到名称”,有些是“未找到路径”。(它甚至可以查询 PDB 文件,我原以为这些文件仅供调试器使用。)很难看出哪些条目可能导致实际失败。无论如何,我已经上传了日志(过滤以具有相关路径)以防它对任何人都有意义。


更新 4 - 添加了 .pdb 文件

所以我有点绝望,并将 .pdb 文件包含在安装程序的输出中。我以为它没有用,但它实际上导致了一个更有用的错误。我现在得到了一个 BadImageFormatException,而不是简单地说找不到 DLL。谷歌搜索告诉我,这是在 x86 上编译但在 x64 上运行的二进制文件的常见问题(就像 Vista 机器一样)。

建议的补救措施是强制它以 x86 为目标,但 Audiere.Net.dll 已经是。问题可能出在它包装的库上吗?