.NET平台中的dll都是具有“自描述性”,里面具有哪些函数都已经写进它自己的metadata里了,因此不需要再来一个.h头文件。.NET平台上的C#语言来调用Win32平台上的dll文件需要用到DllImport特性。
一、举例说明
using System; using System.Runtime.InteropServices; //使用之前必须添加这个引用 class Program { [DllImport("User32.dll")] //引入dll库 public static extern int MessageBox(int h, string m, string c, int type);//必须声明为pubic static extern,函数名必须与库中名字一致,参数类型需要从c转换到c# static int Main() { MessageBox(0, "Hello Win32 API", "me", 4); Console.ReadLine(); return 0; } }
二、c与c#的数据类型对应关系
三、什么时候使用
.NET Framework是对Win32 API的良好封装大部分Win32 API函数都已经封装在了.NET Framework类库的各个类里了。因此我们尽量使用.NET Framework类库中的函数,这不仅效率高,而且比较安全。不到万不得已不要调用win32api。