我想导入一个DLL并使用它的函数,但我想将dll分配给一个值,所以我不会最终覆盖方法
我想怎么做的例子
mydll = [DllImport("MyDll.dll")]
mydll.SayHi();
// So I don't override this:
public void SayHi() { Console.WriteLine("Hello!!!"); }
有什么方法可以实现这个目标吗?
答案 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的主入口点等。