下列文章說明在 .NET 中執行「原生互作性」的各種方式。
您之所以想要呼叫原生程序代碼,有幾個原因:
- 作業系統隨附大量不包括在受管理類別庫中的API。 在此情境中,理想的例子是存取硬體或操作系統管理功能。
- 與其他具有 或 可產生 C 樣式 API 的元件通訊,例如透過 Java Native Interface (JNI) 公開的 Java 程式代碼,或任何其他可產生原生元件的 Managed 語言。
- 在 Windows 上,安裝的大部分軟體,例如Microsoft Office 套件、註冊代表其程式的 COM 元件,並允許開發人員將其自動化或使用它們。 這也需要原生互作性。
上一個清單並未涵蓋開發人員想要/喜歡/需要與原生元件介面的所有潛在情況和案例。 例如,.NET 類別庫會使用原生互作性支援來實作其相當數量的 API,例如控制台支援和作、文件系統存取等。 不過,請務必注意,如有需要,有一個選項。
備註
本節中的大部分範例都會針對 .NET Core 的所有三個支持平臺(Windows、Linux 和 macOS)提供。 不過,針對一些簡短且說明性的範例,只會顯示一個範例,其使用 Windows 檔名和延伸模組(也就是連結庫的 “dll”。 這並不表示Linux或macOS上無法使用這些功能,只是為了方便起見而完成。