通过值导入DLL和调用函数

时间:2018-02-24 19:12:13

标签: c# .net dll

我想导入一个DLL并使用它的函数,但我想将dll分配给一个值,所以我不会最终覆盖方法

我想怎么做的例子

mydll = [DllImport("MyDll.dll")]
mydll.SayHi();
// So I don't override this:
public void SayHi() { Console.WriteLine("Hello!!!"); }

有什么方法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:4)

在包装类中导入DLL。

using System;
using System.Runtime.InteropServices;

// Namespace is optional but generally recommended.
namespace MyDLLImports
{
    static class MyDLLWrapper
    {
        // Use DllImport to import the SayHi() function.
        [DllImport("mydll.dll", CharSet = CharSet.Unicode)]
        public static extern void SayHi();
    }
}

class Program
{
    static void SayHi()
    {
        // whatever...
    }
    static void Main()
    {
        // Call the different SayHi() functions.
        MyImports.MyDLLWrapper.SayHi();
        SayHi();
    }
}

有关详细信息,请参阅MSDN docs on the DLLImport属性。您可能还需要声明调用约定,不同的字符编码,DLL的主入口点等。