導航:首頁 > 源碼編譯 > duilib之源碼分析

duilib之源碼分析

發布時間:2024-05-15 19:06:34

① 桌面端開發都用什麼語言,簡單分析下這些語言的優劣勢對比

目前,最優的選擇有四個:

1.如果只在win下使用,.net form是不二選擇,可謂是又快又好,企業應用或定製開發都是相當好的,初學者也可以入手。

2.electron,跨平台。需要會前端,必須熟悉js、css和html。屬於前端人員大殺器,如果是初學者,需要一下子學三樣東西,再加上electron的進程間通信,可能會被搞懵。

3. qt5,可以使用qml(js語法)進行UI編程,但是需要懂c艹,但是寫軟體相當快,還可以寫安卓、ios、linux、嵌入式中的應用。

4.flutter,剛剛正式支持win平台的軟體開發。谷歌出的這個東西,適合沒有基礎的初學者,因為是一個全新的體系,全新的語言,寫ios、安卓非常高效,之後還會兼容h5。如果是初學者可以跟著走,值得嘗試。但是新東西總有一些坑。

正式項目跨平台建議electron或qt,只用win平台強烈建議微軟自己的net。個人技術嘗試建議flutter。

桌面端開發跨平台的,如果你是輕量級的項目,那麼我推薦你用electron, 目前使用Electron來開發的桌面應用非常多,我們最熟悉的比如Atom,VScode等等。

而且在github上也能找到許多應用使用了electron。

electron是Node,Chromium,html,css,js的結合框架,這就需要你有一定的前端基礎。其實只需要了解一下electron的API就行了,其他的就像你在做web是一樣的。

這種方式最大的缺點就是性能,還有透明窗口也有問題。所以在做需要性能方面佔有很大成分的項目時,並不推薦使用這個方式。

那麼其他的,就是最近幾年使用比較多的windows directui框架,但它不是跨平台的。

那麼就引出了qt,作為c++跨平台的界面框架,這個上手的話,我覺得對一般人是有難度的,因為首先需要扎實的c++功底,其次你要熟悉控制項的製作原理,因為有時候你需要定製自己的UI控制項。它現在在嵌入式,軍工領域非常受歡迎。但是整個庫非常臃腫龐大,而且開發界面的效率也非常低。如果來做互聯網項目,迭代更新的速度根本就跟不上。

目前都只有大公司會採用,像maya這種生產力型的應用很多是qt做的。

還有一種是直接使用Cef加js,比如網易雲音樂,就是這么搞的,但是很多和系統平台的交互介面你需要重寫,等於是需要自己造輪子。工作量大,目前沒有適合的框架給你套用,也需要扎實的c++功底。

其實pc端的應用基本也就windows會火一些,再加一個macos,那麼選擇qt應該會很好一點,畢竟你自己造一個跨平台的框架,太費時。總之,做跨平台就意味著,不可能做到既有效率又完美的實現各種功能,許多都要自己摸索。

win桌面端直接上visual studio啊!然後你熟悉什麼語言?vb.net,c#,c++都有相應的win桌面工具。直接用就好了,非常好用

編程語言這種東西無所謂,只要能用啥都可以。 主要看你老闆需要和你會用什麼語言。

比如 我用AS編安卓程序,當然用java。不過我後台最開始用ASP和ASP.NET來做,現在換PHP了。桌面端用QT或者VB做。 涉及單片機部分控制也用C。

現在做跨平台的了 開始以QT為主了。

只要能達到目的啥都可以。

學會1-2種 換其他的也不是很難。

對初學者來建議學C起步吧。

精通一門,重新學個語言入門也就1個月的事。

PC桌面程序,如果簡單一點的,用pyqt5+python的開發難度和周期都比較現實一點

會C++ 用Qt5 非常不錯 寫代碼效率很高

會js 用atom使用的那個框架

會Python用PyQt 寫代碼很快

會java用JavaFX

看語言咯

還可以用delphi,其firemonkey框架發布8年時間,支持跨平台:win,安卓,ios,macos,linux,後續支持webassembly,界面是控制項拖拽布局所見即所得,開發效率較高。編譯生成的是機器碼,編譯速度快,調試方便,其生成機器碼運行效率較高,支持x86,arm的32位64位處理器。支持跨平台3D界面,藍牙通訊,定位,重力,攝像等,支持多種SQL,NoSQL資料庫。單個開發工具實現前後端開發,跨平台開發。適合個人和小公司用一套工具實現大部分開發需求。

主要有以下幾種技術
### Duilib

#### 簡述

Duilib是在Windows平台上使用最廣泛的類庫,使用C++和XML混合編程,國內很多計算機企業都喜歡使用這個類庫,可能是由於他的技術許可比較寬泛的原因。

適合於界面比較簡單的軟體,視覺特效豐富,局限於Windows的平台。例子:360電腦管家。

#### 優勢

#### 劣勢

### Gtk、Qt或WxWidget:

#### 簡述

三種基本可以做到跨平台的技術,使用C/C++開發,使用者廣泛。其中WxWidget使用了API嫁接方式,Qt和Gtk(包括各種綁定技術)使用自繪技術。

結構嚴謹,軟體可以做的很大很復雜。例子:WPS和Maya。

#### 優勢

#### 劣勢

### Electron:

#### 簡介

使用Web技術開發桌面軟體,基於Chromium(Chrome)引擎,使用JS編程語言,絕大多數使用者都是原來的網頁開發者。

絕大多數都是愛好者使用,處於「勉強可用」的地步。

適合大面積靜態展示型軟體使用。例子:網易雲音樂。

#### 優勢

#### 劣勢

### QtQuick(QML)

#### 簡述

Qt公司開發的一款基於OpenGL的圖形類庫,有顯卡加速,類似於Duilib。採用了C++與QML混合編程。QML類似於JavaScript語言。

QtQuick下一個版本在Qt 6上更加強大,業界期待已久。

#### 優勢

#### 劣勢

### Atk、Swing或JavaFX

使用Java語言開發軟體,有JDK加持業界積累的眾多Java類庫支持。有不輸於VS的IDEA加持,本應該更棒,只是現在已經式微了。

絕大多數使用者都是企業開發(不追求界面美觀)、愛好者(開發順手)。

### WinForm、WPF或Xamarin:

使用C#開發,WinForm和WPF局限於Windows平台。有VisualStudio加持使用很爽。

### Flutter:

使用Dart語言,新類庫,bug可能會很多。

### SwiftUI或Cocoa:

蘋果平台原生界面技術,macOS平台內建支持,不是macOS專用軟體不推薦。

### Win32:

經典Windows 平台API,絕大多數只有一些老軟體還在使用,不是維護老軟體不推薦。

winform,不二選擇

webview2,作為一個瀏覽器控制項嵌入在桌面應用中,支持.net core和.net framework

② vc6.0下能使用ilib嗎 如果能具體怎麼配置

可以。你做好環境配置就行了。
首先,你可以在google代碼託管上下載到最新的ilib源碼,地址是這里 http://code.google.com/p/ilib/downloads/list 可以看見有2個項目,有一個是ilib的源碼,還有一個就是ilib配套的UIdesigner,可以用它進行可視化的UI設計,自動生成xml文件。(但是我的機器上的UIdesigner不知道為什麼每次打開xml文件時就完全沒有反應,有時候還會發生程序未響應的情況)然後網上隨意可以下載到《ilib簡單文檔》,那個用來作為第一次運行ilib的程序相當不錯~
注意:以下全部為Debug版本的配置方法。

首先,你應該知道新建的工程是一個「win32項目」,之後選擇一個「空工程」。新建一個cpp文件將《ilib簡單文檔》中得代碼拷貝進去之後,你可以試著去編譯一下。提示:「無法打開包括文件:「..\DuiLib\UIlib.h」: No such file or directory」,那麼我們就添加UIlib.h。將之前下載的ilib源碼中的DuiLib文件夾拷貝至項目文件夾(即cpp文件的上一層目錄,與Debug文件夾同級的目錄,只不過現在還沒有生成Debug文件夾)。現在再來編譯一下,已經不報錯了!好的。那麼試著運行一下,出現一個錯誤「無法打開文件「..\bin\DuiLib_ud.lib」(也有可能是DuiLib_d.lib等,由預編譯決定,沒關系),那麼我們再去添加。在項目目錄下(與Debug文件夾同級),新建一個bin文件夾。將DuiLib_ud.lib等4個lib文件拷貝進去(需要手動生成,不會手動生成的可以下載,在CSDN上搜索「ilib動態鏈接庫及導入庫」可以下載到)。之後,再將4個dll文件拷貝進Debug文件夾,再運行。出現一個異常!進行單步調試可以發現,pRoot變數始終是0,因為沒有發現xml文件!最後一步,在Debug文件夾中新建一個xml文件,將《ilib簡單文檔》中的xml例子拷貝進去。運行。現在就已經可以看到窗口了。大功告成。

最後說幾個注意點:
1.lib需要放在bin文件夾下,或者通過pragma comment(lib, "..\\bin\\DuiLib_ud.lib")的第二個參數指定路徑。

2.dll需要放在Debug文件夾下。
3.xml文件需要放在Debug文件夾下。
4.最重要的是4個dll和4個lib文件,lib文件可以手動生成,不會的也可以去下載。在CSDN上搜索「ilib動態鏈接庫及導入庫」可以下載到。下載地址:http://download.csdn.net/download/gjt19910817/3940248

③ 璇鋒暀DuiLib 鐨勬簮鐮佽佸幓鍝閲屾洿鏂

浣跨敤Visual Studio鎵撳紑宸ョ▼鏂囦歡.prj銆.vcproj鎴.vcxproj鍙.sln涔嬬被鐨勯兘琛 浠巑ain()鎴杦inMain鐪嬭搗 鍙浠ユe父緙栬瘧榪愯岀殑錛岃繕鍙浠ュ湪闇瑕佺殑鍦版柟鍔犳柇鐐

④ 開源閱讀好開發嘛

開源閱讀不太好開發,有一定的難度性,你可以購買一些這樣那樣的開源軟體的教程或者圖書(包括電子書)去學習,但一定不要以這些學習材料為主要的學習這些開源軟體的方法和途徑,有機會的話,或者說你想要學習的開源軟體所使用的開發語言正好是你熟悉或者使用的編程語言,那麼你應該盡量多去以閱讀這些開源項目的源碼本身為主。舉個例子,如果你是 C/C++ 後端開發者,那麼像 Redis、Nginx(它們都是使用 C 編寫的)這樣的開源項目的源碼你應該認真的去研讀一下;如果你是做 Windows C/C++ 客戶端或者一名 QT 客戶端開發人員,那麼像 MFC、DUILIB、金山衛士等源碼,你可以拿來讀一讀;如果你是 Java 程序員,Netty、Spring 等源碼是你進階路上必須邁過去的一關。為什麼建議以閱讀相關源碼為主,而不是其他相關教程呢?首先,任何其他相關教程介紹的內容都是基於這個軟體的源碼實現創作出來的,雖然能幫助你快速理解一些東西,但是不同的教程作者在閱讀同樣一份代碼時的注意點和側重點不一樣,加上如果作者在某些地方有理解偏差的,這種偏差會被引入你所學習的教程或者圖書裡面,也就是說,你學習的這些東西其實不是第一手的,而是經過別人加工或者理解意譯過的,在這個過程中如果別人理解有偏差,那麼你或多或少的會受一點影響。所以,為了"不受制於人」,親自去閱讀一些源碼是非常有必要的。以上是開源閱讀開發的部分內容,具體還是得自己去驗證和設計祝您生活愉快,謝謝提問😊

⑤ 現在看孫鑫MFC視頻是不是落伍了

現在公司用MFC的都是老的項目了,因為用MFC要開發出華麗的界面是比較吃力的,很多公司都有自己的界面框架,所以MFC了解一些就可以了。
最主要是熟悉win32消息機制,然後可以看一下一些開源的界面庫,比如現在網路PC客戶端的大部分產品、華為網盤、酷我等都用ilib界面庫來開發,建議你去學一下ilib源碼。

閱讀全文

與duilib之源碼分析相關的資料

熱點內容
為什麼叫A演算法 瀏覽:209
安卓手機10塊錢可以買什麼手機 瀏覽:275
怎樣對某一列部分數據加密 瀏覽:364
typecho伺服器怎麼登錄 瀏覽:301
龍雀服源碼 瀏覽:336
網球小恐龍解壓玩具 瀏覽:442
開關電源還是單片機有 瀏覽:201
金得利文件夾是哪產的 瀏覽:924
電腦棕色文件夾打不開 瀏覽:657
微信如何使用網路代理伺服器 瀏覽:327
無線網橋加密技術 瀏覽:286
pdf格式轉化ppt 瀏覽:934
程序設計流程圖表達演算法 瀏覽:539
plc程序員待遇怎麼樣 瀏覽:596
一加主題文件夾商店 瀏覽:494
人渣怎麼看ip伺服器地址 瀏覽:552
為什麼周年慶伺服器喇叭掉價了 瀏覽:217
pdf橡皮擦注冊碼 瀏覽:364
櫻校設置id時出現伺服器錯誤該怎麼辦 瀏覽:732
涉及到年份求星期幾的演算法 瀏覽:559