簡體   English   中英

訪問Microsoft.Win32.UnsafeNativeMethods?

[英]Accessing Microsoft.Win32.UnsafeNativeMethods?

Microsoft在.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時,它會如此痛苦。

原因可能是SuppressUnmanagedCodeSecurityAttribute的安全影響。 檢查Move P / Invokes到NativeMethods類

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM