2014-10-18 80 views
0

我有兩個項目,一個C#項目,其中包含我需要的所有內容以及一個具有控件和一些邏輯的GDI C++項目,我希望將其放入C#項目中。如何將C++ GDI代碼轉換爲C#項目

作爲控件以某種方式包裝GDI C++項目嗎?是否有一些更新的技術,我應該更新GDI代碼使用(不知道如何GDI是不同於GDI +)。

剛開始看這個,不知道如何整合這兩個。

+2

你還不知道要問一個有意義的問題。 C++代碼使用GDI來實現繪畫是一個不相關的細節,更重要的是它如何將其功能展示給其他代碼。有多種方法可以做到這一點,比如RegisterWindowEx()或ActiveX,這是你首先需要關注的。 – 2014-10-18 13:12:20

+0

Hans,所以我會從C++代碼創建一個dll,它有一個com接口(actives或registerWindowx)?然後導入該dll到我的C#項目中使用? – Maestro1024 2014-10-18 14:19:12

+1

您不一定需要使用COM,例如,您可以使用C++/CLI或P/Invoke進行集成。但是最好的方法取決於C++代碼如何像Hans說的那樣公開其功能,所以我們需要更多的細節來回答這個問題。 – 2014-10-18 14:43:54

回答

1

它取決於你的C++代碼的複雜性。如果它很大或很複雜,那麼最好是將它包裝起來並從c#中使用它(例如,將它包裝在一個COM包裝器中,或者甚至將它作爲一個單獨的進程運行,只需將其窗口顯示在主機中。

如果它不太複雜,那麼將它移植到c#可能會更容易和更簡單。很多用於邏輯的C++代碼很容易移植到c#,並且GDI和GDI +之間的差別很小,所以我希望移植到相當直截了當。

的決定因素可能就是你自己的信心,則使用COM或得到GDI +來呈現同樣的事情。