2011-12-15 109 views
1

我目前正在使用.NET通過使用C++/CLI項目與本地C++庫進行通信。然而,繼續這個項目,我希望能夠公開本地C++代碼的特定模塊,最好儘可能少的額外實現,同時保持可重用性和可伸縮性。C++/CLI與COM - 哪個更好?

我已經對這兩種用法做了一些研究,但不能解決哪種方法更好地解決這個問題。有人可以解釋哪種方法最適合這種情況,如果有的話?

+1

這聽起來不像你曾經寫過COM服務器。寫一個,然後你就會知道。使用ATL和Visual Studio中內建的嚮導有戰鬥機會。 – 2011-12-15 10:50:13

+1

C++ Cli絕對是贏家。 – 2011-12-15 10:55:15

回答

2

如果您想要封裝.NET的本機C++代碼,請使用C++/CLI。對於簡單的C風格API,可以使用PInvoke。

如果要爲.NET和COM客戶端(如Internet Explorer,MS Office,腳本語言等)封裝本機C++代碼,請使用COM。

在我看來,編寫COM包裝器是比較複雜的任務。但COM大師可以有另一種觀點 - 這取決於你在這些技術上的經驗。