如何在c#项目中加载dll
错误:
Unable to load DLL 'Reader.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
代码示例:
[DllImport("Reader.dll")]
public static extern byte OpenReader(ref IntPtr hCom, byte LinkType, string com_port);
图片:
最佳答案
如果问题真的是“无法找到”,那么使用 Sysinternals 的 ProcMon 会告诉你系统在哪里寻找 DLL。
但是,这些异常通常意味着“我找到了 DLL,但我无法加载它”,这可能是因为缺少 DLL 的依赖项而不是 DLL 本身,或者因为 DLL 与试图加载它的应用程序。如果您的 C# 应用程序设置为“任何 CPU”并且您使用的是 64 位计算机,您将在加载非托管 32 位 DLL 时遇到此类错误。
隔离问题的一种方法是创建一个加载 DLL 的简单 C/C++ 项目。 (如果您无权访问导入库,则使用 LoadLibrary 动态加载它。)然后使用 Dependency Walker 分析测试工具,它将报告丢失的 DLL 的名称。
关于c# - 无法在 C# 中加载 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9320495/