我們有本機Win32 C++代碼和一組我們希望從C++代碼中調用的C#程序集。我總結我們的比例爲:C++調用C#選項
使用COM。 C#代碼需要使用其他屬性(GUID,COMVisible)進行修飾。 C#程序集需要註冊regasm,然後才能通過COM使用本地C++代碼。
使用C++/CLI(以前管理的C++)包裝類。一個C++類可以添加到本地C++項目中。該類將使用/ clr進行編譯。本地C++代碼將調用C++/CLI類,然後調用.Net代碼。沒有涉及COM。根據需要,通過C++/CLI擴展處理的編組來啓動CLR。
在本地C++代碼中託管CLR的實例。
我打算折扣選項3,因爲我沒有看到除了選項2之外的好處,除了我們失去了對包裝類的需求之外。所以問題是,選項1對選項2有什麼優點/缺點?
在此先感謝。