繁体   English   中英

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

[英]Why must P/Invoke functions be static in C#?

看代码:

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

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

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

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

外部导入的函数本质上是静态的。 通过使它们不静态,他们将不会获得任何收益。 实例方法可以使用局部变量,这对于dll导入例程而言是不可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM