更新:2007 年 11 月
這個頁面會連結至使用 Visual C++ 時有關 Interop 工作的說明。若要檢視 [說明] 中所涵蓋的其他常見工作分類,請參閱 Visual C++ 中的 [如何?]。
CLR/原生互通性
混合的、純粹的和可驗證的功能比較
比較三種不同 /clr 編譯模式的功能。HOW TO:移轉至 /clr
討論將專案轉換成 Managed 型式時,使用 /clr 編譯機器碼時會發生的問題。HOW TO:使用 /clr 編譯 MFC 和 ATL 程式碼
討論如何編譯現有的 MFC 和 ATL 程式,使其以 Common Language Runtime 為目標。混合 (原生和 Managed) 組件
說明開發人員如何混合使用 Managed 和 Unmanaged 功能來編寫應用程式。Interop 的效能考量 (C++)
提供減少 Managed 或 Unmanaged Interop 轉換對於執行階段效能影響的方針。How to: Declare public and private on Native Classes
示範如何參考來自 Managed 型別的原生型別。How to: Pass a Delegate^ to a Native Function Expecting a Function Pointer
示範您可以如何從 Managed 元件搭配函式指標參數來呼叫原生函式,在該呼叫中,原生函式可接著呼叫 Managed 元件委派 (Delegate) 的成員函式。HOW TO:存取 System::String 中的字元
示範如何存取 String 物件的字元,以進行採用 wchar_t* 字串之 Unmanaged 函式的高效能呼叫。HOW TO:將原生 DLL 加入至全域組件快取
說明如何將原生 DLL (而非 COM) 放入到全域組件快取中。HOW TO:在 System::Guid 和 _GUID 之間轉換
示範如何在 Guid 與 _GUID 之間轉換。HOW TO:將 char * 字串轉換為 System::Byte 陣列
示範使用 Marshal 類別 (Class),就是將 char * 字串轉換為 Byte 陣列的最有效方式。HOW TO:將標準字串轉換為 System::String
示範如何將 Standard C++ 程式庫字串 (<string>) 轉換為 String。HOW TO:將 System::String 轉換為標準字串
示範如何將 String 轉換為 Standard C++ 程式庫字串 (<string>)。HOW TO:將 System::String 轉換為 wchar_t* 或 char*
說明如何在 Vcclr.h 中使用 PtrToStringChars,將 String 轉換為原生 wchar_t * 或 char *。HOW TO:以原生型別宣告控制代碼
示範如何在原生堆疊上建立 gcroot 物件。HOW TO:判斷影像是否為原生或 CLR
示範如何以程式設計的方式,檢查影像是否是針對 Common Language Runtime 所建立。HOW TO:以原生函式存放物件參考
說明您可以如何使用會包裝 GCHandle 的 gcroot.h,將 CLR 物件參考存放在 Unmanaged 記憶體中。HOW TO:以原生型別存放實值型別的參考
說明如何使用 Boxed 型別上的 gcroot,將參考存放在原生型別中的實值型別 (Value Type)。HOW TO:取得位元組陣列的指標
說明您可以如何採用陣列中第一個元素的位址,並將其指派給指標,以便取得 Byte 陣列中陣列區塊的指標。HOW TO:在 /clr 編譯中使用原生型別
示範如何在 /clr 編譯 (Compilation) 中定義原生型別,以及從組件內任意使用該原生型別。HOW TO:包裝原生類別以便讓 C# 使用
示範如何包裝原生 C++ 類別,以便該類別可供採用 C# 或其他 .NET 語言所撰寫的程式碼使用。
C++ Interop
HOW TO:使用 C++ Interop 封送處理 ANSI 字串
示範如何使用 C++ Interop 在 Managed 程式碼和機器碼之間封送處理 ANSI 字串。HOW TO:使用 C++ Interop 封送處理 Unicode 字串
示範如何使用 C++ Interop 在 Managed 程式碼和機器碼之間封送處理 Unicode 字串。HOW TO:使用 C++ Interop 封送處理 COM 字串
示範如何使用 C++ Interop 在 Managed 程式碼和機器碼之間封送處理 COM 字串。HOW TO:使用 C++ Interop 封送處理結構
示範如何使用 C++ Interop 在 Managed 程式碼和機器碼之間封送處理 struct。HOW TO:使用 C++ Interop 封送處理陣列
示範如何使用 C++ Interop 在 Managed 程式碼和機器碼之間封送處理陣列。HOW TO:使用 C++ Interop 封送處理回呼和委派
示範如何使用 C++ Interop 在 Managed 程式碼和機器碼之間封送處理回呼 (Callback) 和委派 (Delegate)。HOW TO:使用 C++ Interop 封送處理內嵌指標
示範如何使用 C++ Interop 在 Managed 程式碼和機器碼之間封送處理內嵌指標。HOW TO:指定 out 參數
示範如何將函式參數指定為 out 參數,以及如何從 C# 程式呼叫該函式。
COM Interop
使用 .NET 的原生 COM 伺服器
說明使用 .NET 應用程式之現有 COM 元件時的可用選項,並概要說明每一種方法的優點和缺點。HOW TO:在 TLBIMP 中使用原生 COM 伺服器
示範如何使用型別程式庫匯入工具 (TlbImp.exe) 工具從 Managed 程式碼使用 COM 物件。HOW TO:在 CRCW 中使用原生 COM 伺服器
示範如何使用自訂執行階段可呼叫包裝函式 (Custom Runtime Callable Wrapper,CRCW) 從 Managed 程式碼使用 COM 物件。將 .NET Framework 元件公開給 COM
說明撰寫會與 COM 用戶端互通之 Managed 程式碼的一些秘訣。
P/Invoke
HOW TO:使用 PInvoke 封送處理字串
解說如何使用平台叫用 (P/Invoke) 功能,以 CLR 字串型別 System.String 呼叫可接受 C-Style 字串的原生 (Native) 函式。HOW TO:使用 PInvoke 從 Managed 程式碼呼叫原生 DLL
示範如何使用平台叫用 (P/Invoke) 功能從 Managed 程式碼中呼叫在 Unmanaged DLL 中實作的函式。HOW TO:使用 PInvoke 封送處理結構
解說如何使用平台叫用 (P/Invoke) 功能從 Managed 程式碼中呼叫可接受 C-Style struct 的原生函式。HOW TO:使用 PInvoke 封送處理陣列
解說如何使用平台叫用 (P/Invoke) 功能從 Managed 程式碼中呼叫可接受 C-Style 陣列的原生函式。HOW TO:使用 PInvoke 封送處理函式指標
解說使用平台叫用 (P/Invoke) 功能與 Unmanaged 函式互通時,Managed 委派 (Delegate) 如何代替函式指標。HOW TO:使用 PInvoke 封送處理內嵌指標
解說如何使用平台叫用 (P/Invoke) 功能封送處理內嵌指標。HOW TO:修改原生函式中的參考類別
示範如何使用 PInvoke 服務,將具有 CLR 陣列的參考類別傳遞到原生函式,以及修改該類別。HOW TO:使用規則運算式剖析字串
說明您可以如何採用陣列中第一個元素的位址,並將其指派給指標,以便取得 Byte 陣列中陣列區塊的指標。
C++ 支援程式庫
- HOW TO:擴充封送處理程式庫
說明如何擴充封送處理 (Marshaling) 程式庫,在資料型別之間提供更多轉換。
在 MFC 中使用 Windows Form
在 MFC 中使用 Windows Form 使用者控制項
解說如何使用 MFC Windows Form 支援類別,在 MFC 應用程式中將 Windows Form 控制項裝載為 MFC 對話方塊或檢視內的 ActiveX 控制項。Windows Form/MFC 程式設計的差異
提供有關 Windows Form 和 MFC 之間程式設計差異的背景資訊。將 Windows Form 使用者控制項裝載成 MFC 對話方塊
說明如何使用 CWinFormsDialog 類別將 Windows Forms 控制項裝載成 MFC 對話方塊。HOW TO:建立使用者控制項並裝載 MDI 檢視
示範如何建立 .NET Framework 使用者控制項、編寫控制項類別庫中的使用者控制項 (特別是 Windows 控制項程式庫專案),然後將專案編譯成組件。HOW TO:新增命令傳送至 Windows Form 控制項
示範如何使用 CWinFormsView 來設定命令的連線路徑,並將命令 UI 訊息更新為使用者控制項,以便讓它處理 MFC 命令。HOW TO:呼叫 Windows Form 控制項的屬性和方法
解說為什麼要建議您加入使用者控制項型別的成員,並在 IView::OnInitialUpdate 中將它初始化。將 Windows Form 使用者控制項裝載為 MFC 檢視
說明如何將 Windows Form 使用者控制項裝載為 MFC 檢視。HOW TO:建立使用者控制項並裝載至對話方塊中
解說如何將使用者控制項加入至新的對話方塊架構的 MFC 專案。HOW TO:使用 Windows Form 執行 DDX/DDV 資料繫結
示範如何將原生 C++ 字串繫結至 .NET 使用者控制項。HOW TO:從原生 C++ 類別接收 Windows Form 事件
示範如何啟用原生 C++ 類別,以接收來自 Windows Form 控制項或使用 MFC 巨集對應格式的其他表單所引發 Managed 事件的回呼。在對話方塊和檢視中的接收事件類似執行控制項的相同工作。將 Windows Form 使用者控制項裝載至 MFC 對話方塊中
說明如何將 Windows Form 使用者控制項裝載在 MFC 對話方塊中。HOW TO:使用 Windows Form 執行 DDX/DDV 資料繫結
示範如何將原生 C++ 字串繫結至 .NET 使用者控制項。