-1

看代码:

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

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

4

2 回答 2

6

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

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

于 2012-07-03T14:06:45.540 回答
1

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

于 2012-07-03T14:11:00.313 回答