2011-03-29 75 views
5

對有多少人實際使用C++/CLI感到好奇?那麼有多少人在使用它?人們是否只在管理環境下尋找程序員的具體工作?圍繞C++/cli的社區有多大?從迄今爲止我所看到的語法變化不少,這是我應該學習的東西,作爲一個C++程序員?另外,是c + +/cli,C++ .net?我對任何微軟都很無知。C++/CLI社區

回答

5

剛想人每天爲生編程C++/CLI。很多程序員知道如何編寫一個包裝類,這就是語言的優點。但是這些是一次性項目,彌補了遺留代碼庫和託管前端之間的差距。就像在.NET框架中使用的一樣,在System.Data和PresentationManager中使用C++/CLI來分別與dbase提供程序和DirectX進行交互。當你熟悉本地C++編程,並且至少已經暴露於類似C#的東西,並且知道CLR的基礎知識時,那麼在必要時你將不會遇到潛在的麻煩。圖大概三個星期,以加快語法。掌握它當然需要更長的時間,但並不總是需要完成工作。

2

C++/CLI是必要的,有助於託管和非託管代碼之間的橋樑,當你沒有100%的託管寫的完整的奢侈品。如果由於許多限制而無法在託管代碼中重寫整個C++應用程序,並且隨着時間的推移逐個添加新的託管代碼是實現真正遷移以獲取託管代碼的一種方式,則會發生這種情況。

+2

或者當您需要未由Microsoft提供的封裝程序公開的操作系統服務時(或者由於任意限制而發瘋,例如SerialPort類僅適用於以「COM」開頭的文件名)。通過C++/CLI調用Win32 API很容易,而且類型安全,p/invoke既不是。 – 2011-03-29 22:42:29

3

C++/CLI絕對是小衆的,但我敢肯定,開發人員不必很難找到工作。 C++/CLI的目的是彌補原生代碼和託管代碼之間的差距。 Microsoft Visual C++編譯器將同時編譯本機C++,託管C++(CLI)或兩者。對於性能非常重要的Interop場景來說,這絕對有用。

如果您想了解更多請查看:

http://www.functionx.com/cppcli/index.htm

5

從你的問題的一些較容易的部分開始,「Managed C++」是Visual C++ 2002中引入的C++舊的互操作層的名稱。說實話,這是非常可怕的,並且讓我煩惱看看.Net好幾年了。對於Visual Studio 2005,託管C++被C++/CLI取代。語法實際上非常簡單,而最終的結果看起來並不像C++,它很容易閱讀,並且與C#非常相似。我牢牢地盯着桅杆,實際上我很喜歡使用它!

C++/CLI的大多數用例都涉及包裝本地代碼,除此之外,我還將它用於涉及擴展MAPI和Outlook的更實質性的程序集。根據C++/CLI的日常使用情況,您可能需要長時間仔細研究如何實現配置模式(查看〜/!語法組合)。我發現它激怒了共享指針不能用作託管類中的成員變量,所以我多年來一直在寫我唯一的「刪除」語句,但這確實是一個小問題。

FxCop在C++/CLI生成的程序集上出色地工作,所以你應該在你瞭解.Net的時候使用它。

祝你好運!

p.s.

嚴格地說,我不確定這個問題是否屬於有效的StackOverflow問題,但它是一個有趣的主題...