C#中调用 Windows API 的要点
在 文档中,关于调用 的指示比较零散,并且其中
稍全面一点的是针对 讲述的。本文将 中调用 的要点汇集如下,
希望给未在 中使用过 的朋友一点帮助。另外如果安装了 的话,
在 ! "# $% &
%'! & #( 目录下有大量的调用 的例子。
一、调用格式
) !*+&(,--引用此名称空间,简化后面的代码
--使用 &. 特性来引入 & 函数,注意声明的是空方法,即方法体为
空。
/&0123145
&.6+%*&0*&!78*&!384,
--调用时与调用其他方法并无区别
可以使用字段进一步说明特性,用逗号隔开,如:
/&012318$*91:$6145)
&. 特性的公共字段如下:
7 、 !( 指 示 向 非 托 管 实 现 传 递 方 法 参 数 时 所 用 的
!(值。
!(调用方清理堆栈。它使您能够调用具有 (!的函
数。
!(被调用方清理堆栈。它是从托管代码调用非托管函数
的默认约定。
3、'控制调用函数的名称版本及指示如何向方法封送 !参数。
此字段被设置为 '值之一。如果 '字段设置为 ;,则所有字
符串参数在传递到非托管实现之前都转换成 ;字符。这还导致向 <<$*
的名称中追加字母“=。如果此字段设置为 ,则字符串将转换成 字符串,同时
向 <<$*的名称中追加字母“=。
大多数 23使用这种追加“=或“=的约定。如果 '设置为 ,则
这种转换就是与平台有关的(在 %上为 ;,在 >?上为
)。'的默认值为 。'字段也用于确定将从指定的 <<导入哪
个版本的函数。
'和 ';的名称匹配规则大不相同。对于 来说,如