2012-05-25 19 views

回答

5

使用C++/CLI的優點是您可以在同一個程序集中編寫本機代碼和託管代碼。

當使用C++/CLI時,與C庫交互更容易,您可以正常使用您的庫,並且仍然可以公開完全託管的.NET接口或類。但是,當然C++/CLI增加了一些複雜性。

另一方面,在C#中,您需要重新聲明所有結構並使用DllImport在C#中再次聲明您的C函數。

我想說的簡單的互操作任務(如只是一些功能和幾個結構),使用C#和PInvoke就好了。如果使用完整的API,需要大量的結構重定義,固定,轉換等等,C++/CLI可能是更好的選擇。

+0

所以它基本上是一個圖書館複雜性的問題。對於更復雜的庫使用C++/CLI,但您可以使用簡單的庫來避開C#。 –

+1

@HåkonK.Olafsen是的,基本上。當然,這也取決於你想要對結果做什麼。如果他們需要大量的「C++東西」來處理,比如memcpy,reinterpret_cast等,C++/CLI也可能是這種情況。 – Botz3000

相關問題