错误:无法加载DLL’。dll’:找不到指定的模块。 (来自HRESULT的exception:0x8007007E) – 这是什么错误?

情况:

我正在尝试运行CharLS JPEG-LS压缩算法实现

该站点中有关于您可以下载C#VS 2010解决方案的源代码。 在解决方案中,有2个C#类库项目,1个非托管VC ++项目和1个C#控制台应用程序。 控制台App调用其中一个类库,“使用CharLS;”,并且该特定库引用了非托管VC ++项目。 控制台应用程序在调试模式下完美运行。

问题:

但是当我为“Release”编译控制台应用程序并运行.exe(可执行文件)时,在此过程中调用某个特定函数时,它会给我这个错误:

错误:无法加载DLL“CharLS.dll”:找不到指定的模块。 (HRESULTexception:0x8007007E)

我也尝试创建另一个项目并从那里引用类库,但是我得到了同样的错误。

我试过通过网络阅读其他解决方案,但他们没有帮助我。

出现此错误的一些原因可能是:

  1. 您为“DllImport”属性的“EntryPoint”属性提供的名称与您从本机组件导出的函数不匹配。

  2. 另一个原因可能是缺少dll本身/或其任何依赖项(使用依赖性walker和check)

  3. 第三个原因可能是它可能是调试/发布版本不匹配。

在发布模式下运行之前,您是否(重新)构建了项目? 看起来你没有和发布输出包含没有这样的lib。 无论如何检查它。

确保它已在服务器上明确注册。 您是否已将应用程序池(假设IIS7 +)设置为允许32位进程?