共用方式為


在 C++ 中使用明確的 PInvoke (DllImport 屬性)

.NET Framework 提供明確的平台調用 (或 PInvoke) 功能與 Dllimport 屬性,以允許 Managed 應用程式呼叫封裝在 DLL 內的 Unmanaged 函式。 當 Unmanaged API 封裝為 DLL 且原始碼無法使用的情況下,需要明確 PInvoke。 例如,呼叫 Win32 函式需要 PInvoke。 否則,請使用隱含 P{Invoke;如需詳細資訊,請參閱 使用 C++ Interop (隱含 PInvoke)

PInvoke 的運作方式是使用 DllImportAttribute。 這個屬性會採用 DLL 的名稱做為其第一個自變數,會放在要使用的每個 DLL 進入點的函式宣告之前。 函式的簽章必須符合 DLL 導出的函式名稱(但某些型別轉換可以透過定義 DllImport Managed 型別的宣告來隱含執行。

結果是每個原生 DLL 函式的 Managed 進入點,其中包含必要的轉換程式碼 (或 thunk) 和簡單資料轉換。 Managed 函式接著可以透過這些進入點呼叫 DLL。 由於 PInvoke 的結果,插入模組的程式代碼完全受控。

本節內容

另請參閱

從 Managed 程式碼呼叫原生函式