如何直接调用从 DLL 导出的本机函数

本文关键字:本机 函数 DLL 何直接 调用 | 更新日期: 2023-09-27 18:30:47

如何直接调用从DLL导出的本机函数?有人可以给我举个小例子吗?

如何直接调用从 DLL 导出的本机函数

这是

Microsoft示例:

class PlatformInvokeTest
{
    [DllImport("msvcrt.dll")]
    public static extern int puts(string c);
    [DllImport("msvcrt.dll")]
    internal static extern int _flushall();
    public static void Main() 
    {
        puts("Test");
        _flushall();
    }
}

如果需要从本机 dll 生成 C# DLLImport 声明,请观看这篇文章:从本机 dll 生成 C# DLLImport 声明

取决于你到底想要什么...我的代码中有这样的东西,但这使用 Win32 API dll 的

[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();

然后只需致电

 GetForegroundWindow()

好像在类中定义

下面是

操作中的 DllImport 属性的快速示例:

using System.Runtime.InteropServices;
class C
{
    [DllImport("user32.dll")]
    public static extern int MessageBoxA(int h, string m, string c, int type);
    public static int Main()
    {
        return MessageBoxA(0, "Hello World!", "Caption", 0);
    }
}

此示例演示声明在本机 DLL 中实现的 C# 方法的最低要求。方法 C.MessageBoxA() 是使用静态修饰符和外部修饰符声明的,并具有 DllImport 属性,该属性使用 MessageBoxA 的默认名称告知编译器实现来自 user32.dll

参考此链接