为什么P / Invoke函数必须在C#中是静态的?

时间:2012-07-03 14:04:42

标签: c#

见代码:

class VirtualMemoryManager
{
    [DllImport("kernel32.dll",EntryPoint="GetCurrentProcess")]
    internal static extern IntPtr GetCurrentProcessHandle();
}

为什么“GetCurrentProcessHandle”必须“静态”

2 个答案:

答案 0 :(得分:6)

  

这是P / Invoke方法的要求,因为Windows API中没有一致的实例概念。

来源:http://msdn.microsoft.com/en-us/magazine/cc164123.aspx

答案 1 :(得分:1)

外部导入的功能本质上是静态的。通过不使它们静止,它们将无法获得任何东西。实例方法可以使用局部变量,无论如何都不可能使用dll导入例程。