本文為大家介紹windows 桌面程序開發(fā)(開發(fā)桌面應(yīng)用程序用什么語言好),下面和小編一起看看詳細(xì)內(nèi)容吧。
windows桌面程序用什么語言開發(fā)
推薦使用微軟的vc,里面有mfc和wtl。如果你想看起來像360,請使用dui。不過都是c++語言
開發(fā)獨立exe桌面應(yīng)用程序,用什么語言、技術(shù)合適?
您的要求看似不高,但實現(xiàn)起來并不容易。首先,windows 本身甚至沒有c++ 運(yùn)行時庫,或者msvcrt 不是windows 的一部分。每個版本的windows都可能自帶一部分msvcrt,但是xp vista win8 win10 win11自帶的msvcrt版本不同,也就是說,一旦依賴了msvcrt庫,就不能保證在所有版本的windows上都能工作.換句話說,為了實現(xiàn)您的目標(biāo),您至少必須有一種靜態(tài)鏈接基礎(chǔ)c/c++ 庫的方法。
要解決此問題,通常需要檢查數(shù)據(jù)并更改參數(shù)。比如這篇文章就是完整的數(shù)據(jù)。甚至,說不定有人直接將這樣的方法做成了工具。但是你問“沒有多余的第三方工具,沒有代碼和步驟”,好了好了,路又被你堵死了。至于高級語言,其實很多高級語言都是用c/c++開發(fā)或者執(zhí)行的,所以windows下的實際執(zhí)行還要依賴msvcrt。需要排除類似的語言方案。因為,要想完全實現(xiàn)主體的想法,就必須擺脫對msvcrt的依賴。但是如果要擺脫msvcrt依賴,要么需要一定的代碼和步驟,要么需要第三方工具。你不能同時使用兩者,所以你不能那樣做。
然后,你說程序的體積要足夠小,不允許有庫依賴,所以簡單的結(jié)論就是:你根本不能做稍微復(fù)雜一點的程序,瀏覽器框架也不行。畢竟一個webview是靜態(tài)鏈接進(jìn)來的,體積也不算小。所有第三方代碼都必須編譯為開源代碼并靜態(tài)鏈接到其中。如果程序很小,就不可能完成足夠復(fù)雜的任務(wù)。除非你調(diào)用了一個動態(tài)鏈接庫,但是你需要所有的靜態(tài)鏈接,那像你這樣的程序根本做不了什么,何必費(fèi)心大家給你想辦法?;蛘吣皇莵磉@里推廣您開發(fā)的軟件?我相信你說的集成到某個軟件中是可以做到的,但是你不覺得你可以把這個所有依賴庫的純靜態(tài)鏈接功能集成到你要推廣的軟件中,不用第三方工具嗎?如果能這么鬼鬼祟祟的換個概念,確實是可以實現(xiàn)的。
帶有winform 界面的桌面應(yīng)用程序exe。第一個推薦的是c#,畢竟是微軟自己的。寫winform在開發(fā)效率和性能上比其他開發(fā)語言要快,相關(guān)的資源和文章也很多。 c#非常適合開發(fā)winform,功能非常強(qiáng)大。好結(jié)果。缺點是需要.netframework支持windows 10,win11自帶.net framework。如果不考慮跨平臺,c#開發(fā)是最方便高效的。想要界面效果更炫,那就用wpf讓winform在界面美化上更上一層樓吧。但它會更慢。
如果對性能要求高或者操作系統(tǒng)底層使用c++或者直接c c++或者mfc,性能都很好,但是開發(fā)難度比c#高。如果直接用c,會比較困難。優(yōu)點是運(yùn)行速度快,兼容性好。除了匯編c 和c++ 應(yīng)該是最快的。 qt qt是一個基于c++的跨平臺圖形用戶界面應(yīng)用程序框架。與mfc相比,它是一個時尚的圖形界面設(shè)計和開發(fā)工具,比mfc有很多優(yōu)點。豐富的api功能,提高用戶實際開發(fā)效率。支持opengl2d、3d圖形渲染。支持qml腳本開發(fā)。使用qml 的缺點是開發(fā)效率被利用:qt 需要在運(yùn)行時環(huán)境中打包整個東西。體積相當(dāng)大。 c#要小很多,因為很多依賴庫都是windows自帶的。
java java 無所不能。如果熟悉java,可以使用java進(jìn)行開發(fā),但是運(yùn)行時需要安裝運(yùn)行環(huán)境。 java的生態(tài)資源非常豐富,教程也很多。如果你習(xí)慣了python,你可以使用pyqt pyqt。開發(fā)python也很容易。可以用qt for python+qwebview+pyinstaller打包單個exe,啟動慢?;蛘咦鰝€安裝包,用fbs或者pynsist 缺點:生成后包會稍大,第一次執(zhí)行速度會有點慢。
喜歡rust 并使用rust 語言windows t 也可以用rust 語言開發(fā)。 electron跨平臺,界面美觀electron是一個跨平臺的桌面應(yīng)用開發(fā)框架,可以讓我們使用html css js技術(shù)來開發(fā)可以安裝在跨平臺桌面上的軟件。 electron 允許前端開發(fā)人員做更多的事情。網(wǎng)上流傳著一句話:“別跟我說c++和java,我靠js走遍天下,需要的時候才做,上手容易,你可以用front- react、vue等端框架,輕松遷移前端組件,構(gòu)建漂亮的桌面應(yīng)用。
專門開發(fā)接口的早期開發(fā)語言還有其他早期開發(fā)語言。如果你想寫native native exe,也可以用delphi下面的語言:delphi 7,很不錯?,F(xiàn)在free pascal 對跨平臺開發(fā)來說已經(jīng)不錯了。 vb6:一門從未消亡的開發(fā)語言,也有一大批開發(fā)小玩意兒的愛好者。還是非??斓膙fp:visual foxpro,但不是微軟自己的,現(xiàn)在還沒有開發(fā)pb:powerbuilder c++ builder 6.0:borland的c++程序開發(fā)集成平臺masm:macroasse
mbler。 更加困難。 接近機(jī)器語言。優(yōu)點是運(yùn)行速度快,比c#快,生成的exe小,不易被破解。
其他開發(fā)語言flex(flash script + java),easy language(中文編碼),單獨的exe桌面軟件也可以試試aardio,還不錯。如果只針對windows平臺,建議使用c#或vb6。 如果想要更好的界面,可以使用瀏覽器調(diào)用html js 界面庫或者wpf。 如果考慮跨平臺。? ,上面有很多選項。 主要是根據(jù)你的實際需求,再考慮性能、部署等方面。
做windows界面,用qt還是mfc?
使用qt吧,前提是在這兩者下進(jìn)行選擇。既然提到了qt和mfc,我想題主肯定是一個c++的開發(fā)者。其實,在我看來,windows下開發(fā)界面程序,還有很多其他的選擇。下面我就連同qt、mfc一起來介紹一下幾種常用的界面開發(fā)框架。
其實選什么學(xué)習(xí)還得根據(jù)自身的需求。語言不分好壞在于人。精通才是正道。當(dāng)下window下流行的編程語言,有vb,mfc,c sharp,。如果沒啥限制,建議第三個吧,簡單粗暴上手快,開發(fā)效率也高。如果公司或硬件限制必須用mfc或其他語言,那學(xué)就是。都是微軟的產(chǎn)品,我開發(fā)項目都用過,知識通用。至于qt封裝是全,相對微軟自家的產(chǎn)品,用的人少些。問題多靠自己解決
具體選擇qt還是mfc,這要根據(jù)題主的需求來決定。如果你入職一家公司,做的是老項目的維護(hù),而原有項目是采用mfc來開發(fā),那么當(dāng)然,你沒得選,只能老老實實的繼續(xù)mfc,雖然這玩意寫起來真的很虐心。如果是一個全新的項目,那么還是首選qt。
下面根據(jù)自己的認(rèn)識,推薦幾款windows下開發(fā)界面開發(fā)常用技術(shù)。
1)qt
號稱可以跨平臺,語法結(jié)構(gòu)簡單清晰。面向?qū)ο蟮奶匦泽w現(xiàn)的比mfc明顯。代碼寫起來比較優(yōu)雅,也就是說上手會快一點,最新版本支持的特性qml,可以讓我們用js,css來繪制客戶端界面,寫起來效率也是蠻高的。缺點就是文檔可能沒有mfc那么齊全,基本只有官方的官網(wǎng)和demo,而且發(fā)布包體積會比較大。
2)mfc
全稱microsoft foundation classes(微軟基礎(chǔ)類庫),可以算的上是上古產(chǎn)品了吧,目前除了維護(hù)老項目,應(yīng)該很少有團(tuán)隊使用mfc來開發(fā)了吧。基本上mfc == “沒飯吃”。建議如果你是初學(xué)者,界面開發(fā)還是不要選擇mfc了。它唯一的好處就是微軟的msdn文檔比較齊全,相關(guān)論壇和那種問答的資源要多很多,一般初學(xué)者遇到的問題都可以看到前輩們的解決方法。不過目前它已經(jīng)被其親爹微軟拋棄了。
3)duilib
目前已開源,是一款強(qiáng)大的界面開發(fā)工具,可以將用戶界面和處理邏輯徹底分離,極大地提高用戶界面的開發(fā)效率。唯一不足的是原開發(fā)者已經(jīng)停止維護(hù),很多都是個人在維護(hù),出了問題的話,只能自己去摸索,debug。下面是一款個人使用duilib開發(fā)的迅雷播放器界面效果。
最后附上一些基于duilib開發(fā)的軟件不完全列表(歡迎大家補(bǔ)充指正):
百度: pps 愛奇藝 百度殺毒 百度衛(wèi)士 91助手
騰訊: 微信 企業(yè)微信
阿里: 釘釘 支付寶安全控件 pp助手
書生云: 書生企業(yè)云盤
微軟: 微軟壁紙
網(wǎng)易: 易信 云音樂 荒野行動pc版
華為: 華為網(wǎng)盤
金山: 金山快盤
京東: 咚咚
cctv: cbox
酷我: 酷我音樂盒
蘑菇街: teamtalk
火絨: 火絨安全軟件
盤古: 盤古越獄工具
順網(wǎng): 網(wǎng)維大師 91y
網(wǎng)狐: 網(wǎng)狐經(jīng)典版
墨跡風(fēng)云: 墨跡天氣
zoomcloud: zoom 視頻會議
搜狗: 搜狗手機(jī)助手
沃通: 沃通代碼簽名工具
驅(qū)動人生: 驅(qū)動人生 人生日歷
維棠: 維棠
深圳市北斗智研 科技 : 智能辦公助手 erp管理系統(tǒng)
4)electron
這玩意應(yīng)該是這幾年才火起來的吧,宣城自己可以通過使用javascript、html和css構(gòu)建 跨平臺 的桌面應(yīng)用程序,讓人們感覺 js 真的有一統(tǒng)天下的趨勢(web、移動端、pc客戶端)。開發(fā)效率真心的高,不過貌似商用上還不是特別的多,典型的成功案例目前知道的有vscode,atom。
兩者之間二選一的話肯定選qt了,如果再考慮開發(fā)效率與運(yùn)行效率的話,可以在python平臺上使用qt的python綁定庫pyqt,再配合c++,主體用python語言,界面部分用pyqt搭建,核心算法部分用c++封裝成動態(tài)庫dll文件,在python里去調(diào)用。這樣是一個不錯的方案,python部分縮短了開發(fā)時間,c++部分保證了運(yùn)行速度,只是前提是,你要會用c++寫dll,在python里會調(diào)用dll。
作為做了近2兩年windows application的人來說,我直接說qt!首先我主要做pc和下位機(jī)通信的app,如串口、tcpip、總線類等。選qt理由如下:【僅從我的經(jīng)歷來講】
1、qt開發(fā)效率高。我第一個項目前幾個項目用的mfc,平均時長3個月,一個軟件80%的時間都放在界面上去了。然后后面開始使用qt,一個月能做好幾個app沒壓力,界面布局很方便,不用像mfc去一個一個控件拖動。
2、qt庫簡單易懂。個人的感覺就是mfc與win api聯(lián)系太大了,你要玩轉(zhuǎn)mfc,必須要把windowsapi相關(guān)知識搞得明明白白的。而qt庫把每一個功能都封裝得很好,很容易去使用,不需要沒事就百度怎么用。
3、mfc已經(jīng)在淘汰邊緣了。到如今qt還在不斷更新,我目前使用的是qt5.9。在平時招聘的時候,也很少看到有公司讓你專職做mfc,要么qt,要么c#。
4、qt跨平臺。我當(dāng)初換qt的一個原因還是,我以后如果不做windows了可以換linux上位機(jī),qt可以做到很好的跨平臺,而mfc不行。
兩者沒有好壞之分,需要看應(yīng)用場景。如果是界面要求不高,穩(wěn)定性和效率要求高的工業(yè)軟件,mfc是最好的選擇。如果是界面要求美觀,跨平臺使用,qt是最好的選擇。但是要注意的是qt企業(yè)用是需要授權(quán)費(fèi)的。另外,windows上的界面還有其他選擇wpf,direct ui等。這里著重提一下direct ui,目前可以找到比較好的就是duilib這個界面庫,開源穩(wěn)定易用高效。關(guān)注我一起探討呀!
我們來簡單比較一下qt和mfc。
1.開發(fā)速度
整體來說可能mfc會快捷一些,因為windows平臺的開發(fā)工具大多很智能,因為立足于windows的開發(fā)人群很廣,從菜鳥到專業(yè)人士,但是qt由于基于linux,可用的開發(fā)工具不多,大都比較專業(yè),多是第三方產(chǎn)品,而且集成度不大,第三方庫也沒有mfc得多,從這一點mfc略勝一籌,但是qt自從被nokia收購后,官方發(fā)布了跨平臺集成開發(fā)環(huán)境qtcreator,所以之后走向就不好說了,個人總體感覺qt creator和vs.net差距比較大,還需改進(jìn)。
但是從庫本身來說qt集成的功能較mfc龐大,而且使用的封裝技術(shù)信號和槽也是比較受到贊許的,比如qt script為qt提供嵌入式腳本,qt界面庫支持css,所以qt做出來的界面比mfc要好,而且比較容易,mfc就需要借助第三方庫了。
因為mfc是淺層封裝(最新的2008 sp1加入了bcg的高級界面庫,可能有所改善)windows sdk,以降低使用windows sdk引起的開發(fā)效率的降低,和開發(fā)難度的增加。
所以qt庫是比mfc優(yōu)秀的,兩個庫都經(jīng)受了時間的考驗,穩(wěn)定性都很高,bug幾乎沒有。
2.運(yùn)行效率
mfc由于其淺層封裝的特點,所以運(yùn)行效率是比較高的,加上vc對windows的針對性優(yōu)化,整體性能是比較高的,但是如果加入第三方庫就不敢保證了。
qt因為庫比較龐大,封裝層次較深,所以運(yùn)行效率較mfc為低,但是在現(xiàn)在的機(jī)器配置下,c#大家都不介意了,這些會引起人們的介意嗎?
3.學(xué)習(xí)難度
qt的封裝哲學(xué)比較明晰,和系統(tǒng)隔離得比較好,門檻不高;
mfc較難精通,因為深入開發(fā)之后sdk還是要了解的。
必須qt啊,跨平臺,還有鬼知道項目以后要不要跑linux和嵌入式設(shè)備上!界面簡單的話,用qml開發(fā),可以直接移植到嵌入式設(shè)備上去,還可以把編寫邏輯的程序員和界面設(shè)計師分離出來!mfc現(xiàn)在微軟都放棄更新維護(hù)了,mfc開發(fā)界面很麻煩的,除非老項目要維護(hù),不然不建議再用mfc做新項目了!qt的信號與槽很贊,比mfc的回調(diào)函數(shù)好用多了!
mfc底層太復(fù)雜了,但資料多,開源代碼多。
qt底層可能好點,但資料和整個開發(fā)環(huán)境肯定不如vs系列。
微軟精力不在mfc上面了,而qt則要在競爭中求存活。
用什么看開發(fā)習(xí)慣,熟悉哪個用哪個。有困難找我
開發(fā)windows桌面程序用什么語言?
c++,直接使用windows api,移植性好,開發(fā)速度稍慢一些。c++,使用mfc,開發(fā)速度比win api快一點。c#,開發(fā)速度最快,效率較低但在pc上不明顯。 vb之類的也可以,跟c#的開發(fā)速度差不多。開發(fā)windows桌面程序用什么語言?
作為程序員,推薦給初學(xué)者的5大編程語言
其實,只要不是太小眾、太邊緣的編程語言,只要精通一門,都可以橫行it互聯(lián)網(wǎng),無論就業(yè)或創(chuàng)業(yè)。
在it編程這個行業(yè),分前端和后端。
前端易入門、易上手,如果僅是為了就業(yè)而學(xué)習(xí),那么時間投入產(chǎn)出比,最快的是學(xué)前端,而不是后端;
但學(xué)會了后端,再去學(xué)前端,就非常容易,并且后端不僅在就業(yè)方面,而且以后開發(fā)產(chǎn)品、創(chuàng)業(yè)都比前端有優(yōu)勢;
對于前、后端語言,如果都是普通熟練程度,現(xiàn)階段,二者工資差別不是太大,但一個精通前端和一個精通后端,都是5年以上的程序員,很明顯,后端程序員的工資遠(yuǎn)比前端程序員工資高。
因為很多人從事it編程3-5年,頂多也就算熟練,稱不上精通,那么對于新手,還糾結(jié)于編程學(xué)什么語言好的話,推薦下面這幾種語言來學(xué)習(xí):
1、php
屬于后端語言,學(xué)習(xí)它的好處是:學(xué)習(xí)時間短、成本低、短期投入產(chǎn)出比明顯,能讓你對編程不再有恐懼感,讓你愛上編程,并且在國內(nèi)非常流行,用來做web開發(fā)非常適合;能做各類web系統(tǒng)的開發(fā),熟練或精通它,無論就業(yè)或創(chuàng)業(yè),都很easy。缺點是:入門太容易了,太多人會了,反而不值錢了,找工作容易,高薪的話,要非常精通才行。
2、java
相比php來說,入門稍微有些難度,但熟練或精通后,工資普遍比php高,也就是說你有5年java開發(fā)經(jīng)驗和有10年java開發(fā)經(jīng)驗,無論是工資還是技術(shù),是有天壤之別的;但你有5年php經(jīng)驗和有10年php的經(jīng)驗,其實差別不是非常大。java可以做安卓開發(fā)、桌面應(yīng)用系統(tǒng)開發(fā)以及web開發(fā)等。
3、python
python語言和golang語言選其中一個來學(xué)就可以,python比golang更容易些,應(yīng)用范圍非常廣,如:web開發(fā)、爬蟲、大數(shù)據(jù)處理、桌面端軟件、還可用于 游戲 、人工智能、機(jī)器人等。他好像什么都會,但專做某一領(lǐng)域,公司反而會選其他語言,他是個多面手,但具體都很精、很專的業(yè)務(wù),反而好多公司不選他,雖然如此,對于個人而言,學(xué)習(xí)它不會錯。
4、golang
golang作為服務(wù)器編程語言,很適合做日志處理、數(shù)據(jù)打包、虛擬機(jī)處理、數(shù)據(jù)庫代理等工作。在網(wǎng)絡(luò)編程方面,它還廣泛應(yīng)用于web應(yīng)用、api應(yīng)用等領(lǐng)域。golang發(fā)布于2009年,比較年輕,目前有很多招聘和創(chuàng)業(yè)應(yīng)用的需求,工資也不錯,但初學(xué)者,短期內(nèi)用它找工作或創(chuàng)業(yè)有難度,適合已經(jīng)掌握了其他語言的情況下,學(xué)習(xí)golang。
5、c#
適合做windows類桌面軟件、應(yīng)用程序、web開發(fā),bs/cs軟件程序他都可以開發(fā);雖然我以前學(xué)過asp ^^,但我對他了解不多,上手不難,也可以做 游戲 開發(fā)的后端等等。
還有超多的,如:object-c、c++、c、swift、perl...
對于前端,基本上都是基于javascript,我目前對前端不是很精通,但下面幾個東東,是非常值得你學(xué)習(xí)和掌握的:
1、vue/uniapp
這兩個,在目前,前端非?;?。學(xué)這個就不要再去看這2個了:react和angular。
2、node.js
這個我認(rèn)為可以說他是腳本語言,也可以說他是后端語言。
3、h5+css+bootstrap+jquery
這個非常非常的容易,不要專門花時間去學(xué),工作過程中用到,順便看看,就能用
好了,windows 桌面程序開發(fā)(開發(fā)桌面應(yīng)用程序用什么語言好)的介紹到這里就結(jié)束了,想知道更多相關(guān)資料可以收藏我們的網(wǎng)站。