0

在我的项目中,我无法加载 dll 文件

dll 文件 --> 平台目标是 x86

我的项目——>平台目标是Anycpu

机器正在运行 64 位操作系统

这是我使用的代码

 pDll = NativeMethods.LoadLibrary(dllname);
// some code here
static class NativeMethods
{
    [DllImport("kernel32.dll")]
    public static extern IntPtr LoadLibrary(string dllToLoad);

    [DllImport("kernel32.dll")]
    public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);

    [DllImport("kernel32.dll")]
    public static extern bool FreeLibrary(IntPtr hModule);
}

为什么我无法加载这个 dll 文件?

对不起,我的英语不好

4

1 回答 1

2

假设其他一切正常(DLL 名称等):

您描述的是一个已知问题...例如,如果您的 DLL 是 32 位并且您使用的操作系统是 64 位,那么您的 .NET 应用程序将在 64 位模式下运行...

最简单的解决方案:如果 DLL 仅在 x86 中可用,则需要为 x86 而不是 AnyCPU 编译。

否则,您将需要该 DLL 的 64 位版本,然后您会遇到称为“并行组装”的问题......我认为您会发现这些很有帮助:

于 2012-12-18T19:29:30.840 回答