日期:2014-05-17  浏览次数:21299 次

C# 64位win7下DllImport LoadLibrary函数失败,求解。
C# 2.0 开发winform程序

C# code

[DllImport["kernel32.dll"]]
static extern IntPtr LoadLibrary(string lpFileName);


public void Fun()
{
   IntPtr p = LoadLibrary(abc.dll);
}



在32位xp系统下正常,可在64位windows 7系统下,p值返回为0

abc.dll可在mfc程序里用loadlibrary正常调用。并不缺少任何其他相关dll。

求解。

------解决方案--------------------
[DllImport["kernel32.dll"]]

确定没有 "kernel32.dll" -》kernel64

没用过w7。没法试。win2008出现过几回都是权限问题。用x86编译
------解决方案--------------------
把你的winform程序编译成x86的目标平台
------解决方案--------------------
Load一个其他dll试试看,如果其他的dll都可以,那说明还是你dll编译的问题。
如果不可以,试试关掉UAC,或者看看system32目录是否有kernel32.dll或确认其是否正常工作。