Windows软件开发,不仅有C/C++、还有Java、C#,甚至JavaScript也加入了桌面应用开发的阵营......
C++方咐物念向
作为一名主业为C++的开发工程师,当然是首推C++了,用它来写Windows软件,还是很香的,这里重点推荐两个界面库。
Qt
这个也是C++界面开发首推的UI库,是一套跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序。文档齐全,API设计优雅,原生态跨平台支持,在国产化盛行的今天,相信Qt的市场也会越来越广阔。Qt新版本提供的QSS可以让你像Web当中CSS那样优雅的写界面布局代码。
下图是使用Qt内置的QSS绘制的一个界面换肤效果图,还是很绚丽的(PS:作品来源于CSDN,博主:一去丶二三里,如有侵权,请随时联系)。
MFC
虽然业界流传MFC=没饭吃、MFC要淘汰了......但是这么多年过去了,这玩意还是没有淘汰,只能说是落幕了,需求越来越少(然鹅,并没有绝迹)。
如果题主的需求是做一些自用的小工具,如果界面要求不是很高的话,那么选用基于MFC的Dialog对话框模式还是很方便的。无论是自用或者是他用,简单的将静态编译完成的exe发送给其他人就可使用,不用过多的依赖库。
温馨提示:
如果是选择就业方向的话,不建议选择MFC。
C#方向
微软主推的编程语言,与宇宙第一IDEVisualStudio配合的天衣无缝,通过简单的拖拽即可完成界面元素的布局。仿Java而生,目的就是取代Java,然而其结果是显而易见的,PC端程序开发已经落幕,在Web端,C#似乎跟Java不在一个重量蚂卖级上。
考虑到微软的技术更新换代实在太快了,比如WinForm和WPF被全面移植到.NETCore。在这5G时代、人工智能、大数据各种浪潮的年代,实在没有必要再去追逐微软了。
JavaScript方向
考虑到题主的语言技术栈,主要偏向Web方向,开发Windows软件的话,隆重推荐下Electron。可以让你使用纯JavaScript调用丰富的原生( *** 作系统)APIs来创造桌面应用,大名鼎鼎的VSCode、Atom就是使用该开源库来完成的。衡困让人们感觉JS真的有一统天下的趋势(Web、移动端、PC客户端)。
至于Java、PyQt之流,这里就不再推荐了。毕竟Python的设计初衷就不是让你来写Windows客户端开发的,而Java,重心也早已转移到Web端和移动端了,JavaSE开发的客户端程序已经很少见了。
题主可能不太懂软件开发,是这样的,能否开发软件和开不开源是没有直接关系的。微软提供了很好的文档库MSDN,里面有详细的接口功能、入参和返回值的介绍,程序员只需要根据这些文档就可以编写相应的软件了。
举个生活中的例子,我们去办身份z,只需要提供一些必要的材料,例如户口簿就可以了,然后等待领证就好。这里还可以多说一句,办身份z一般不是立即就可以拿到手的,往往会仔橡给一个回执单,后续再通知我们去拿证件。
这里必要的材料就是入参;公安局户口办理就是功能;公安内部具体的办理流程就是功能(叫接口更合适)的内部实现;回执就是受理结果;最后的身份z是最终结果。
这还相当于软件中的异步调用过程——先受理后回调。
最后,这只是给小白的一个简单的例子,软件开发者无需纠结其中不准确的地方。
基于windows开发并不需要开源。API函数和应用框架就是开发人员与 *** 作系统的协调,绝大部分底层工作是由编程软件来做的,软件开发人只是需要关注应用建模和人机界面等。
开源对软件开发人员来说并没有直接意义。 *** 作系统得出现就是为了减少开发人员直接与硬件打交道,共享系统调用和服务,比如消息机制,从这个角度看,开源并没有给开发人员带来好处。
一个好的编译系统才是开发人员最需要的,连大部分API都包装起来,可以认为开发人员面对的是一个虚拟机。一个虚拟机由硬件 *** 作系统和编译器组成。
比如要在屏幕上显示哈哈哈,在Delphi中写showmessage(“”哈哈哈”)。
因为有地球最强IDEvs,并且他能连接到已知宇宙最强的产品文档MSDN,不会用还有Technet护航。几十年不间断的投入,形成自己的风格,即便没用过也能猜到个7788。想跟它竞争又没法投入那么多,你说还能怎么办嘛
把win比喻成一辆车,你不知道车辆的内部构造是怎么样的,但是你知道怎么 *** 作就行了,你知道怎么 *** 作不就可以让车带着你去你想去的地方吗
感谢邀约,你的提问题两者之间没有任何关系,系统是否开源和软件一点关系都没,就好比我们使用的苹果手机一样,苹果系统不开源,但是其使用人数多,其市场价值就越大,自然就有更多人的愿意在这个平台上开发软件,以下是我针对这个问题的思考,仅供参考:
首先弄明白计算机系统和软件的关系
计算机系统软件包含系统软件和应用软件,没有装任何软件的计算机称念带旁为裸机,裸机是很难被人们使用的,软件是计算机系统必不可少的部分。系统软件是直接运行在裸机上的系统软件,又是其他软件能够运行的基础,下图表明计算机硬件、软件之间的关系
*** 作系统的生态问题,造就了开发人员为其开发软件
Windows桌面 *** 作系统从85年发布的Microsoft-DOS到现在的windows10,有数据显示,Windows仍然雄踞91.59%,其次是Mac占6.27%,最后的Linux占2.14%,在我国的使用率更是高达了95%。
为什么在我国有如此高的比例呢,主要原因市场初期,微软采取了纵容盗版的态度,让我们人人都能免费使用,造就身边很多人进行使用。除了这个原因,其系统本身简单易用,很容易上手,不需要花太多的时间就会学会。还有一个重要的原因,微软推出的office办公软件,在Windows中的使用体验最好,我们日常工作生活中已经产生了一种依赖,习惯养成了,就自然很难摆脱windows系统了。
使用的人多了,其商业价值也越大,就好比使用微信的人多了,好多人和企业在上面做公众号,头条号和抖音火了,好多人在上面做自媒体的道理一样,流量就是王道。windows的生态也是如此,因此很多公司和开发人员很乐意针对Windows系统开发软件,不仅普通的C端用户需要,不少企业和机关单位用的也是windows系统,需要大量的定制软件,这个是刚需的需求,也造就了越行游来越多的公司投入到windows软件的开发。
小节
今天的分享就和大家聊到这里,由于我们已经对windows产生了严重的依赖性,依赖性约束强,越是很难摆脱,如果哪一天微软的windows系统不让我们用了,对我们的影响是难以想象的,期待这我们有一天也能做出生态强大好用的 *** 作系统。
感谢大家阅读,如果你有什么好的想法欢迎到留言区分享交流,如果你赞同我的回答,欢迎给个赞和转发,谢谢支持。
Windows是微内核架构,各模块之间由消息机制通讯,模块之间藕合度相对较低,可以封装成独立的API接口给应用程序调用,而不必开源核心代码。因为API返回错误,问题就在这个模块上,不会牵扯到其它模块,即使不开源也容易找到问题。
宏内核的Linux就不一样了,模块之间本身就是靠API调用,外层调用的API返回了错误,往往可能是上一层API返回的,那就要去分析它的源码才能找得到问题。
你喂他他需要的数据,他返回你要的东西。。。支付宝的功能也是这样调用。
电视机里有成千上万个元件,全部装在机壳里,看不到也可能不懂原理(不开源),但几乎大家都会用,为什么呢?因为电视机有按键,有遥控器(API接口)。不需要看里面,能控制它就行。
因为windows为程序开发人员开放了很多封装的模块接口,方便程序去调用,这些接口就在msdn都能查到,称之为api函数接口,windows封装了很多库文件(dll库),分别对应实现不同的功能,程序员开发软件的时候去调用这些dll库文件里对应的api函数就可以了。
其实windows是个黑盒,但是对外暴漏了一些接口,这些接口有对应的说明文档,分别描述了接口的类型,接口的用途,接口各个参数的类型。有些文档也会附上一些例子,为你展示怎么使用,这样就很好的解决了程序员为其开发应用的问题。
如下面几张图就是windowsapi的描述
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)