2010-04-27 79 views
0

有沒有人試過託管C++編碼?我有幾個問題:託管C++前景

  1. 與C#相比,語言的生產力如何?
  2. 對可編寫項目的類型是否有任何限制?我們可以在託管的C++中編寫Web應用程序嗎?
  3. 是否可以在一個應用程序中混合託管和非託管C++代碼?
  4. MFC在託管C++中仍然有效嗎?考慮遷移VC++應用程序時,它會是最好的選擇嗎?
+2

正如澄清:「託管C++」(真正稱爲「C++託管擴展」)是舊的skool並已棄用。 C++託管代碼的現代擴展稱爲「C++/CLI」。 – 2010-04-27 04:16:17

+0

我假設你們所有人的意思是「C++/CLI」,而不是「託管C++」,對吧?受管理的C++非常難以使用。 C++/CLI使它好得多。 (儘管有些答案指出,仍然不完美。) – sblom 2010-04-27 04:17:30

+4

*使用C++/CLI(這是目前的名稱是「Managed C++」)的唯一原因是在C#之間提供一個橋樑。 NET和本機C++代碼。在我看來,沒有很好的理由*你想用C++/CLI來做其他任何事情。 – 2010-04-27 04:19:09

回答

1

我發現C#的生產力要高得多。託管C++的真正魔力是,你可以混合託管和非託管代碼 - 即使在一個功能!我不知道微軟如何做到這一點(顯然他們也不是,因爲這個功能的正式名稱是「IJW」 - 「它正常工作」:))。

+0

只是爲了補充我們的觀點,在C#中,您還可以在同一個函數中混合託管和非託管代碼。這是該框架的一個特點。 – 2010-04-29 23:04:20

+0

你如何在C#中做到這一點?當然,您可以使用P/Invoke,但是您不能像C++/CLI中那樣只編寫代碼*,就像它是本機程序一樣。 – EMP 2010-04-29 23:13:18

1

我認爲C#在託管環境中要好得多。 Managed C++對我來說似乎有些奇怪,我寧願使用一種適用於託管環境的語言(而不是託管的C++將無法工作)。此外,如果需要,您可以從C#中調用非託管代碼,就像從託管C++中調用代碼一樣。

2

我已經使用託管C++(C++/CLI)作爲C#和C++之間的橋樑。我們有一個使用OpenSceneGraph作爲「底層」的圖形應用程序。然後使用託管C++獲取一些圖形數據以及C#和OSG圖層之間的接口。

它在那個特定的應用程序中工作得很好。不過,我寧願直接使用C#。