在.net平台中调用WIN32api函数

时间:2022-05-16 18:12:17

        .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;     
    }
}

二、cc#的数据类型对应关系

在.net平台中调用WIN32api函数

三、什么时候使用

    .NET Framework是对Win32 API的良好封装大部分Win32 API函数都已经封装在了.NET Framework类库的各个类里了。因此我们尽量使用.NET Framework类库中的函数,这不仅效率高,而且比较安全。不到万不得已不要调用win32api