VS2005 用C#怎么加载user.dll?

yueliang00 2008-12-26 04:31:30
我用[DllImport("user32.dll"]命令后,还是找不到dll程序集,是怎么回事? 想请教一下各位!
...全文
118 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChrisAK 2008-12-28
  • 打赏
  • 举报
回复
DllImport后必须跟上函数...
CodeProject-Jerry 2008-12-28
  • 打赏
  • 举报
回复
你要动态加载还是静态加载?

动态加载, 首先要导入LoadLibrary和GetProcAddress函数 在Kernel32.dll中
然后用LoadLibrary去加载User.dll 然后GetProcAddress获取函数地址 然后调用

jivi 2008-12-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sageking2 的回复:]
C#里好象只能使用它提供的API函数,我还没见过谁用反射去提取或操作那些ntdll.dll的程序集.
[/Quote]
老大,反射是.net的Assemble(一种扩展的PE格式)才有的东西,Assemble里存有元数据信息和中间语言的二进制码,所以才能够反射。
ntdll是纯粹的本地代码,根本不包含这些信息。 是不可能反射的。不过LoadLibrary GetProcAddress 可以得到 PE文件的输出表里的函数
地址。然后调用。
sageking2 2008-12-28
  • 打赏
  • 举报
回复
C#里好象只能使用它提供的API函数,我还没见过谁用反射去提取或操作那些ntdll.dll的程序集.
zjs1109 2008-12-28
  • 打赏
  • 举报
回复
回帖是一种美德!传说每天回帖即可获得 10 分可用分!
gtiroy 2008-12-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lewyi 的回复:]
回帖是一种美德!传说每天回帖即可获得 10 分可用分!
[/Quote]
美德
lewyi 2008-12-27
  • 打赏
  • 举报
回复
回帖是一种美德!传说每天回帖即可获得 10 分可用分!
Fibona 2008-12-27
  • 打赏
  • 举报
回复


这样试试:
[DllImport("user32.dll",EntryPoint = "messagebox")]
public static extern int msgbox(int hwnd,string text,string caption,uint type);
yueliang00 2008-12-27
  • 打赏
  • 举报
回复
即使我把dll的路径写全后,程序还是找不到函数集
[DllImport("C:\\WINDOWS\\system32\\user32.dll"]]
CruelYoung123 2008-12-26
  • 打赏
  • 举报
回复
要入口函数吧。。。

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧