C#中调用API函数

 我来答
疯狂花菜
2011-07-12 · 知道合伙人软件行家
疯狂花菜
知道合伙人软件行家
采纳数:1803 获赞数:20547
疯狂花菜

向TA提问 私信TA
展开全部
在C#中经常需要调用一些API函数,那么怎样才能正确的调用API函数呢,如下
一、调用API格式
//引用此名称空间,简化后面的代码
usingSystem.Runtime.InteropServices;
...
//使用DllImportAttribute特性来引入api函数,注意声明的是空方法,即方法体为空。
[DllImport("user32.dll")]
publicstaticexternReturnTypeFunctionName(typearg1,typearg2,...);
可以使用字段进一步说明特性,用逗号隔开,如:
[DllImport("kernel32",EntryPoint="GetVersionEx",SetLastError=true)]
DllImportAttribute特性的几个公共字段如下:

1、CallingConvention:指示向非托管实现传递方法参数时所用的CallingConvention值。
CallingConvention.Cdecl:调用方清理堆栈。它使您能够调用具有varargs的函数。
CallingConvention.StdCall:被调用方清理堆栈。它是从托管代码调用非托管函数的默认约定。
2、CharSet:控制调用函数的名称版本及指示如何向方法封送String参数。
此字段被设置为CharSet值之一。如果CharSet字段设置为Unicode,则所有字符串参数在传递到非托管实现之前都转换成Unicode字符。这还导致向DLLEntryPoint的名称中追加字母“W”。如果此字段设置为Ansi,则字符串将转换成ANSI字符串,同时向DLLEntryPoint的名称中追加字母“A”。大多数Win32API使用这种追加“W”或“A
vgjhjghfj
2011-07-13 · TA获得超过628个赞
知道小有建树答主
回答量:527
采纳率:100%
帮助的人:384万
展开全部
EnumFontFamilies
The EnumFontFamilies function enumerates the fonts in a specified font family that are available on a specified device.

Note This function is provided only for compatibility with 16-bit versions of Windows. Applications should use the EnumFontFamiliesEx function.

int EnumFontFamilies(
HDC hdc, // handle to DC
LPCTSTR lpszFamily, // font family
FONTENUMPROC lpEnumFontFamProc, // callback function
LPARAM lParam // additional data
);
Parameters
hdc
[in] Handle to the device context.
lpszFamily
[in] Pointer to a null-terminated string that specifies the family name of the desired fonts. If lpszFamily is NULL, EnumFontFamilies selects and enumerates one font of each available type family.
lpEnumFontFamProc
[in] Point to the application definedcallback function. For information, see EnumFontFamProc.
lParam
[in] Pointer to application-supplied data. The data is passed to the callback function along with the font information.
Return Values
The return value is the last value returned by the callback function. Its meaning is implementation specific.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式