| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 702 人关注过本帖
标题:C#与API
只看楼主 加入收藏
风飏
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2010-7-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
C#与API
在学习C语言的时候我们实现学习的基本语法然后就开始接触C语言与API函数,但是在学习的C#时候,我们发现C#很少用到API函数,基本上都已经集成了,但是还有些地方在用,,,我系统想知道哪些地方是在使用这些函数的...................求解!
搜索更多相关主题的帖子: API 
2010-10-28 10:15
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:20 
.net中的函数很多就是对系统底层API的一些封装,但是在.net中并没有包含Windows所有的API函数。所幸的是,在.net中允许我们调用系统的API函数,并且还可以根据需要向系统API传递输入或者输出参数。
当调用非托管API函数时,它将依次执行以下操作:
1.查找包含该函数的 DLL。
2.将该 DLL 加载到内存中。
3.查找函数在内存中的地址并将其参数推到堆栈上,以封送所需的数据(注意:只在第一次调用函数时,才会查找和加载 DLL 并查找函数在内存中的地址。)。
4.将控制权转移给非托管函数。
5.对非托管 DLL 函数的“平台调用”调用
平台调用会向托管调用方引发由非托管函数生成的异常。

在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的。
另外如果安装了Visual Studio .net的话,在C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Samples\Technologies\Interop\PlatformInvoke\WinAPIs\CS目录下有大量的调用API的例子。
程序代码:
//例如:
//调用格式
   using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码
  ...
  //使用DllImportAttribute特性来引入api函数,注意声明的是空方法,即方法体为空。
  [DllImport("user32.dll")]
  public static extern ReturnType FunctionName(type arg1,type arg2,...);
  //调用时与调用其他方法并无区别 
希望对楼主有帮助

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-10-28 10:48
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
收藏
得分:0 
学习了
2010-10-28 15:09
风飏
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2010-7-17
收藏
得分:0 
回复 楼主 风飏
谢谢!
2010-10-28 21:13
tameimeide
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-3-31
收藏
得分:0 
作为业余的,感觉好多好多内容。。。零零散散的。
2013-07-01 15:56
快速回复:C#与API
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019867 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved