在我的项目中,我无法加载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文件?
抱歉我的英文不好
答案 0 :(得分:2)
假设其他一切正常(DLL名称等):
您所描述的是一个已知问题...例如,如果您的DLL是32位且您使用的操作系统是64位,则您的.NET应用程序将以64位模式运行...
最简单的解决方案:如果DLL仅在x86中可用,则需要编译x86而不是AnyCPU。
否则你将需要该DLL的64位版本然后你遇到一个被称为“并排组装”的问题...我认为你会发现这些有用: