Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows API函数,同时为了实现功能扩展,一般也都提供了调用WindowsAPI函数的接口, 也就是说具备调用动态连接库的能力。Visual C#和其它开发工具一样也能够调用动态链接库的API函数。.NET框架本身提供了这样一种服务,允许受管辖的代码调用动态链接库中实现的非受管辖函数,包括操作系统提供的Windows API函数。它能够定位和调用输出函数,根据需要,组织其各个参数(整型、字符串类型、数组、和结构等等)跨越互操作边界。
动态链接库函数使用前必须声明,相对于VB,C#函数声明显得更加罗嗦,前者通过 Api Viewer粘贴以后,可以直接使用,而后者则需要对参数作些额外的变化工作。
动态链接库函数声明部分一般由下列两部分组成,一是函数名或索引号,二是动态链接库的文件名。
譬如,你想调用User32.DLL中的MessageBox函数,我们必须指明函数的名字MessageBoxA或MessageBoxW,以及库名字User32.dll,我们知道Win32 API对每一个涉及字符串和字符的函数一般都存在两个版本,单字节字符的ANSI版本和双字节字符的UNICODE版本。
需要提醒的是,每一种方法使用前必须在文件头加上:
using System.Runtime.InteropServices;
做为程序员,我们需要了解API从字面上了解便是编程接口,因此,做为开发者,需要了解的只是API的使用方法。
API根据操作系统、处理器及功能性的不同而拥有很多不同的类型。 操作系统特用的API:
每种操作系统都有许多通用的API以及一些特用的API,这些特用的API只能在当前操作系统中执行。
例如:
Windows NT 支持 MS-DOS, Win16, Win32, POSIX (Portable Operating System Interface), OS/2 console API; 而 Windows 95 支持 MS-DOS, Win16 以及 Win32 APIs.
Win16 & Win32 API:
Win16是为十六位处理器开发的,早期的操作系统均支持。
Win32则是为32位处理器开发。它可移植性强,被大部分的处理器所支持。
Win32 API在库名后有一个”32”后缀。比如KERNEL32,USER32等。
所有API在下面3个库中得以运行:
Kernel
User
GDI
1. KERNEL
他的库名为 KERNEL32.DLL, 他主要用于产生与操作系统之间的关联:
程序加载
上下文选择.
文件输入输出.
内存管理.
例如: GlobalMemoryStatus 函数就包括当前物理内存及虚拟内存的使用信息。
2. USER
这个类库在Win32中名叫 USER32.DLL。
它允许管理全部的用户接口,比如:
窗口
菜单
对话框
图标等.,
例如: DrawIcon 函数将在指定的设备关联上“画”出图标或者鼠标。
3. GDI (Graphical Device Interface)
它在Win32中的库名为:GDI32.dll,它是图形输出库。使用GDI Windows“画”出窗口、菜单以及对话框等:
它能创建图形输出.
它也能保存图形文件.
例如: CreateBitmap 函数就能通过指定的长、宽、颜色创建一个位图。
自己感觉还是多揣摩,才能理解实质。对代码反复看。提高能力。
希望大家好好利用。看了概念再进行很好的实际演练。。方能有突破。学语言就得这样。只要入了这行就得有吃苦的准备。
正文
c# 调用windowsAPI注意!2005-05-12 13:49:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/Csharpsky/970.html
阅读(3841) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论