正文

c# 调用windowsAPI注意!2005-05-12 13:49:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/Csharpsky/970.html

分享到:

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

阅读(3982) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册