[英]How to write modern Windows software in C++?
我對現代Windows軟件如何用C ++編寫非常感興趣。 我問過曾經從事Windows軟件工作的朋友,他告訴他最后的工作是MFC,然后是WTL。 他說MFC不再是現代的,但仍然使用WTL,但他不太了解。 他還說WTL不是那么現代,在此之前他用純Windows API編程。
如何為Windows Vista或Windows 7編寫軟件? 你還在使用WTL嗎? 那么MFC和純Windows API呢? 或者現在有其他圖書館嗎?
我不太了解它,但是在編寫現代Windows軟件時,C#還是其他.NET語言取代了C ++?
從我過去幾年看到的情況來看:
WTL是一條生命線。 由微軟放棄,被粉絲接收,並有幾個非常忠誠的粉絲。 非常干凈,但學習曲線陡峭,風扇基座逐漸縮小。 雅虎集團不是很活躍。 我不能推薦它。
當MSFT發布功能包時,MFC再次獲得了生命。 相當廣泛,有點不MFC-ish,它強大支持蒙皮,對接布局和色帶。 我認為它會非常受歡迎,但從來沒有看到很多開發者跳上它。 MSDN論壇問題一直很少。 如果你有一個現有的MFC代碼庫,那么一定要看看。 VS2010的另一個MFC刷新增加了Win7功能,它確實保留了公司的基本UI解決方案。
wxWidgets仍然存在。 沒有親身經歷,但主啊,我聽過的少數修煉者正在掀起風暴。 真正的苦澀的東西。
Qt已經存在了很長一段時間,但相當頻繁,特別是在去年。 誰使用它真的很喜歡它。 它正在超越UI類庫的范圍,他們的用戶正在積極尋找以字母Q開頭的常見編程任務的解決方案。這是一個強大的信任投票。
但是,如果您使用的是Microsoft堆棧,則這些類庫中沒有一個是真正的UI開發所在。 WPF是房間里的大象,它的能力比上面列出的要大一百英里。 它破壞設備和范例邊界的能力是強大的,編寫在桌面上運行的代碼以及Web瀏覽器和手機都很難被擊敗。 但是C ++不是其中的一部分。
看看Qt - 你可能會喜歡它。 除非您更喜歡非便攜版本。 但即使你不打算在OS X,Linux,手機上構建......,Qt框架編寫得很好,有很好的文檔記錄並且可行。 SDK現在也包含一個不錯的IDE(Qt Creator)。
如果您的主平台是Windows,則每次都有WTL。 Google Chrome使用它,Spotify使用它。 它最高效,最靈活,不是資源匱乏。 靈活的我的意思是你可以使用它與純Win32 API代碼/其他C ++代碼沒有太大的困難。
有關更多WTL信息: WTL鏈接的集合
在評估之后,我遇到了純Win32或WTL是編寫不基於WRT的現代風格win應用程序的唯一方法。
新面貌是重點。 MFC在Win8和Win10上看起來很糟糕,特別是所有這個功能包的眼睛糖果。 純MFC雖然好但很胖,而且視圖模型部分只是暴躁而且我更喜歡WTL。 但它沒有記錄,這是如此糟糕和可怕。
WxWidgets是一個丑陋的玩具。
QT也不再是另類。 他們過分關注移動和appframework。 如果你去MacOSX你根本不能使用QT(是的它會運行,但它會讓你嘔吐UX)。
WinRT是如此嚴格,缺乏功能,你不能使用它。 並且您可以確定它會失敗,因為沒有人在平板電腦/手機上使用WinStore或Windows。 那么為什么呢?
如果您認為用戶欣賞緩慢而胖的應用程序,WPF就可以了。 它看起來更好,但所有的眼睛糖果現在不再是UI設計指南的一部分,並且小部件的功能集不如Win32本機小部件。 難以置信但真實。 我鎖定你使用不可移植的C#,在我看來這是不贊成的,因為現在性能再次重要(因為性能是能量,是生命時間)。
即使Herb Sutter和其他高級MS員工也告訴你C ++是未來。 而下一個殺手級應用程序是基於C ++ 14而微軟知道的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.