您知道C CX嗎?

2022-07-09 18:12:08 字數 1455 閱讀 1016

最近裝了vs11beta,才關注有關winrt的資訊。c++這次又被微軟「擴充套件」了,新名字叫c++/cx。

c++/cli是微軟為了讓c++**能夠在.net上執行所做的嘗試(誰還記得managed c++),c++/cx是為了讓c++程式設計師能在winrt上「輕鬆」地一展身手所做的擴充套件。

現在c++/cx的資料非常少,google上搜尋一下,頭條就是inside the c++/cx design,是微軟visual c++團隊的乙個哥們寫的。看他的**,一臉苦逼樣,就知道他被c++折磨得非常不爽。

他的文章中也是充滿了痛苦。為了迎合微軟的com技術(為什麼微軟老是抱著com不放)和winrt的模型,他們嘗試了各種方法,例如寫乙個完全符合c++標準的純類庫(wrl),但是發現這個類庫使用還是非常不方便,因為寫乙個com元件是非常麻煩的事情,必須有很多任務具配合。如果沒有visual studio,我估計不會有多少人願意寫com元件。於是他們再一次擴充套件了c++(有點類似atl attributes),編譯器會自動生成很多**來把乙個類搞成com相容,例如自動生成uuid,各種藉口定義等。當然一切都是native的**,並不涉及類似.net的託管問題。

只有c++程式設計師才能體會,對於擴充套件c++的強烈反感。c++的乙個特點就是,自己跟自己不相容,一旦有新特性,就要花費很多精力去把這個新特性和已有特性結合,而且很多情況下,這種結合會產生很多問題和陷阱。

我現在還沒有搞清楚,他們說winrt算是乙個和.net並行的新一代開發平台,底層由c++實現,上層可以由多種語言使用;您看,現在c++自己的平台,居然還要把自己折磨成這樣才能使用,您說c++糾結不糾結?

話說c++11出來,新特性很多,讓本來就複雜的c++更進一步——以後誰要是學c++,那得從c開始,到物件導向,到模版,到stl,到其他標準庫(輸入輸出、正規表示式、執行緒等等),哪乙個都不是能輕鬆搞定的。沒準還要注意c++各種陷阱和最佳實踐,於是要看(more)effective c++(stl)等書。沒準還要知道c++的工作原理才能裝成高手,於是就要看c++物件模型。還有高手鑽研c++標準嗎?

以前寫個c++類,稍微有點複雜度,就要提供構造、析構、拷貝、賦值函式(copy assignment),現在還要加上另乙個賦值函式(move assignment),才能讓這個類有比較正常的行為。考慮繼承,則需要考慮多重繼承的影響,是否virtual繼承,使用public、protected還是private繼承。寫個方法就要考慮是否virtual,是否pure,最後pure virtual的析構函式居然還得提供實現。在實現實際的功能之前,為了符合c++的語義環境,很多時間都得花在這些瑣碎之事上。

c++這個本來就很複雜的東西,卻被微軟一而再,再而三地擴充套件,來適應微軟同樣很複雜的com技術。想到這裡,誰都有一種去學c#的衝動。隨便看一本c#程式設計教材,使用visualstudio,我們就可以開發winform,asp.net,wpf,silverlight,可以編寫元件,可以找工作。

c++/cx,是c++在新一代windows環境中的爆發,還是在新一代windows環境中的滅亡?這個是問題。

您知道什麼是WCF嗎?

訪談主題 2008年3月24日 周一 下午2 00 3 00 訪談內容 wcf windows通訊基礎,windows communication foundation 是微軟推出的在windows作業系統下開發面向服務應用程式的統一平台,是革命性的技術平台。訪談目的 因為它不容易掌握,我們的嘉賓會...

您知道您客戶的資料價值幾何嗎?

您知道嗎?我們的個人資訊,甚至是您客戶的個人資訊正在網上售賣?這些竊取的資料已經成為乙個成熟的商品市場,和石油或金屬一樣,會根據供需關係波動,也有資料質量之說,價值也各不相同。這一市場的產品已遠遠不止信用卡號碼資訊,而是緊跟合法機構大資料增長的腳步。在我們發布的 不為人知的地下資料經濟 報告中,詳細...

還在維護嗎 貼了牆紙您知道怎麼保養維護嗎?

貼了牆紙您知道怎麼保養維護嗎?起泡牆紙起泡是再常見不過的問題,主要是粘貼牆紙時塗膠的不均勻導致後期牆紙表面收縮受力與基層分離水分過多,從而出現的一些內建氣泡。其實解決的方法很簡單,只要拿一般的縫衣針將牆紙表面的氣泡刺穿,將氣體釋放出來,再用針管抽取適量的膠粘劑注入剛剛的針孔中,最後將牆紙重新壓平 晾...