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 函数就能通过指定的长、宽、颜色创建一个位图。 自己感觉还是多揣摩,才能理解实质。对代码反复看。提高能力。 希望大家好好利用。看了概念再进行很好的实际演练。。方能有突破。学语言就得这样。只要入了这行就得有吃苦的准备。

评论