.NET Framework 调用Win32 dll函数

示例

using System.Runtime.InteropServices;

class PInvokeExample
{
    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    public static extern uint MessageBox(IntPtr hWnd, String text, String caption, int options);

    public static void test()
    {
        MessageBox(IntPtr.Zero, "Hello!", "Message", 0);
    }
}

声明一个功能static externsttingDllImportAttribute其Value属性设置为.dll文件的名称。不要忘记使用System.Runtime.InteropServices名称空间。然后将其作为常规静态方法调用。

平台调用服务将负责加载.dll并找到所需的功能。在大多数简单情况下,P / Invoke还将封送参数并与.dll返回值(即从.NET数据类型转换为Win32的数据类型,反之亦然)。