2011-02-11 56 views
0

這可能是一個簡單的問題,但由於我沒有C++經驗,而且我的老闆給了我一個C++解決方案,所以我需要問這個問題。將C++解決方案轉換爲類庫

我有一個C++解決方案需要轉換成.NET類庫,然後可以在C#中完成的另一個.NET解決方案中使用。

這甚至可能嗎???

乾杯

+0

an * unmanaged * C++解決方案? – 2011-02-11 10:33:22

回答

3

您必須包裝所有的C++類,應該在C++/CLI類.NET是可見的。

Read this

也有一些自動化的工具來做到這一點,但我從來沒有使用過這些(我真的不相信他們)。取決於你有多少C++類,以及它們有多複雜。一旦習慣了C++/CLI的一些奇怪之處,編寫包裝器大多是直截了當的。

1

它取決於C++解決方案的輸出。它是應用程序(* .exe)還是庫(* .dll)?

如果它是一個庫(* .dll),您可以使用Platform Invoke Tutorial從託管代碼中調用它的函數。調用Win32本地函數的很多例子可以在http://pinvoke.net/找到。

如果你的結果是一個應用程序,它可能是,它有一個COM接口。在這種情況下,您可以使用COM interop與您的應用程序進行通信。

最後但並非最不重要的是,您可以使用C++/CLI編寫一個圍繞C++功能的託管包裝。但是這是很多工作,並有許多陷阱。

相關問題