导航:首页 > 源码编译 > 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之源码分析相关的资料

热点内容
老款mac怎么进入命令行模式 浏览:810
怎么更改加密视频 浏览:257
vpn命令行 浏览:12
悬赏平台免费源码 浏览:889
游戏地图生成算法 浏览:964
java获取字段的类型 浏览:859
php开放源码 浏览:907
若水android源码 浏览:797
phpphpize安装 浏览:801
cad中点捕捉命令 浏览:31
单片机检测继电器 浏览:707
源码时代培训机构贷款 浏览:552
南光30c如何连app 浏览:821
怎么样获取对文件夹的权限 浏览:448
linuxutc时间获取 浏览:224
灵魂app是哪里的 浏览:226
云听app客服在哪里 浏览:579
xss过滤java 浏览:663
dvdmark文件夹 浏览:207
广联达组价需要加密狗吗 浏览:352