如何在c#项目中加载dll
误差
无法加载DLL 'Reader.dll':找不到指定的模块。(HRESULT例外: 0x8007007E)
代码示例
[DllImport("Reader.dll")]
public static extern byte OpenReader(ref IntPtr hCom, byte LinkType, string com_port);
图片:
发布于 2012-02-17 14:13:37
虽然reader.dll无法加载GPSVC.dll和IESHIMS.DLL。
corflags application.exe /32bit+
版本: v4.0.30319
CLR头: 2.5
PE : PE32
CorFlags :3
伊洛尼:1
32位: 1
签署:0
发布于 2012-02-16 15:24:52
如果问题确实“找不到”,那么使用Sysinternals的ProcMon将显示系统在哪里查找DLL。
然而,这种异常通常意味着“我找到了DLL,但无法加载它”,这可能是因为缺少DLL的依赖项,而不是DLL本身,或者因为DLL与试图加载DLL的应用程序不兼容。如果您的C#应用程序设置为“任意CPU”,并且您位于64位计算机上,则加载非托管32位DLL时会出现这种错误。
隔离问题的一种方法是创建一个简单的C/C++项目来加载DLL。(如果您无法访问导入库,则使用LoadLibrary动态加载它。)然后使用Dependency来分析测试工具,它将报告缺少DLL的名称。
发布于 2012-02-16 15:10:34
如果它是一个简单的C DLL,它只需要在与.exe相同的文件夹中。
https://stackoverflow.com/questions/9320495
复制相似问题