首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法加载DLL (找不到模块HRESULT: 0x8007007E)

无法加载DLL (找不到模块HRESULT: 0x8007007E)
EN

Stack Overflow用户
提问于 2012-01-25 20:55:51
回答 20查看 405.7K关注 0票数 126

我有一个包含非托管C++应用程序接口代码的dll库,需要在我的.NET 4.0应用程序中使用。但是每次我尝试加载我的dll时,我都会得到一个错误:

无法加载DLL 'MyOwn.dll':找不到指定的模块。(HRESULT异常: 0x8007007E)

我已经阅读并尝试了我在互联网上找到的几个解决方案。什么都不管用..

我尝试过使用以下方法:

代码语言:javascript
运行
复制
[DllImport("MyOwn.dll",  CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs((UnmanagedType.I4))]
public static extern Int32 MyProIni(string DBname, string DBuser_pass,
    string WorkDirectory, ref StringBuilder ErrorMessage);

当我尝试遵循this article并运行这个示例(从下载的代码中)时,它运行起来没有任何问题(使用的dll位于bin/debug文件夹中)

我已经将我的dll (以及它所依赖的所有文件)复制到了我的bin文件夹中。

我也尝试了这种方法,但得到了相同的错误:

代码语言:javascript
运行
复制
[DllImportAttribute(MyOwnLibDllPath, EntryPoint="TMproIni")]
[return: MarshalAs(UnmanagedType.I4)]
public static extern  int MyproIni(string DBname, string DBuser_pass, 
    string WorkDirectory, ref StringBuilder ErrorMessage);

有什么建议吗?

EN

回答 20

Stack Overflow用户

发布于 2012-01-25 21:11:22

根据我在Windows上的记忆,dll的搜索顺序是:

  1. Current Directory
  2. System文件夹,C:\windows\system32 or c:\windows\SysWOW64 (适用于64位计算机上的32位进程)。
  3. Path环境变量

读取

此外,我还会检查DLL的依赖项,Visual Studio提供的依赖项遍历程序可以在这里帮助您,它也可以免费下载:http://www.dependencywalker.com

票数 93
EN

Stack Overflow用户

发布于 2014-09-05 19:34:25

您可以使用转储工具找出所需的DLL依赖项:

代码语言:javascript
运行
复制
dumpbin /DEPENDENTS my.dll

这将告诉您DLL需要加载哪些DLL。特别要注意MSVCR*.dll。我已经看到您的错误代码发生在正确的视觉C++可再发行版没有安装。

你可以从微软网站上获得"Visual Studio2013的Visual C++可再发行软件包“。它安装c:\windows\system32\MSVCR120.dll

在文件名中,120 = 12.0 = Visual Studio 2013。

请注意,您有正确的Visual Studio版本(10.0 = VS 10,11 = VS 2012,12.0 = VS 2013...)正确的体系结构(x64或x86)适合您的动态链接库的目标平台,而且您还需要小心调试构建。动态链接库的调试版本依赖于MSVCR120d.dll,它是库的调试版本,随Visual Studio一起安装,但不是由可再发行软件包安装。

票数 49
EN

Stack Overflow用户

发布于 2016-03-04 13:28:35

DLL必须在bin文件夹中。

在Visual Studio中,我将dll添加到项目中,而不是在引用中,而是在“添加现有文件”中。然后将dll的"Copy to Output Directory“属性设置为"Copy if newer”。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9003072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档