访问Microsoft.Win32.UnsafeNativeMethods?

微软在.NET框架中包含一个非常漂亮的Windows API包装器。 它存储在Microsoft.Win32.UnsafeNativeMethodsMicrosoft.Win32.SafeNativeMethodsMicrosoft.Win32.NativeMethods中。很遗憾,它们不可访问,因为它们被声明为私有。 有没有办法轻松访问它们?


这些类中的大多数方法定义(如果不是全部)是使用DllImport属性的extern声明,这些属性通过P / Invoke引用Windows API中的函数。 这些声明所在的地方并不重要。 您可以创建自己的名为UnsafeNativeMethods或SafeNativeMethods的类,并将声明引用相同的Windows API函数。 您可以在pinvoke.net上找到许多用于C#的Windows API函数的签名。


这些类中包含的大多数功能都是由.Net框架本身公开的。 在进行API调用之前,您应该搜索(或询问这里)。

回答你的问题,不。
您可以做的最好的做法是从Reflector或参考源复制它们。


对于它的价值,我一直认为应该有一个kernel32.interop.dll等静态方法已经DllImport'ed。 但我已经根据需要采取了自己的创作方式。 多年来,我发现我很少使用它们中的一小部分,但是当我需要一个我还没有导入的API的时候,这是一件非常痛苦的事情。

链接地址: http://www.djcxy.com/p/44347.html

上一篇: Accessing Microsoft.Win32.UnsafeNativeMethods?

下一篇: Cannot call COM object created from STAThread from oher STA threads