无法在C#中加载DLL

joh*_*ohn 3 c# dll dllimport

如何在ac #project中加载一个dll

错误:无法加载DLL"Reader.dll":找不到指定的模块.(来自HRESULT的异常:0x8007007E)

代码示例:

__CODE__

图片: 例外截图

Wil*_*ean 11

如果问题确实"无法找到",那么使用Sysinternals的ProcMon将显示系统在哪里寻找DLL.

但是,通常这些异常意味着"我找到了DLL,但我无法加载它",这可能是因为DLL的依赖性缺失而不是DLL本身,或者因为DLL与应用程序尝试不兼容加载它.如果您的C#应用​​程序设置为"任何CPU"并且您使用的是64位计算机,则会在加载非托管32位DLL时出现此类错误.

解决问题的一种方法是创建一个加载DLL的简单C/C++项目.(如果您无权访问导入库,则使用LoadLibrary动态加载它.)然后使用Dependency Walker分析测试工具,它将报告缺少的DLL的名称.


joh*_*ohn 2

虽然reader.dll无法加载GPSVC.dll和IESHIMS.DLL。我设法通过在 application.exe 上运行 corflags 命令来使其工作,该应用程序现在标记为 32 位


corflags application.exe /32bit+
Run Code Online (Sandbox Code Playgroud)

版本:v4.0.30319

CLR 标头:2.5

聚乙烯:PE32

相关标志:3

仅:1

32位:1

签名:0