当前位置: 首页 > news >正文

睢宁做网站公司网站项目计划书模板范文

睢宁做网站公司,网站项目计划书模板范文,魏县企业做网站推广,开一家软件开发公司需要什么目录 1、引言 2、IDE 开发环境介绍 2.1、Visual Studio 2.2、Qt Creator 3、 C语言特性 3.1、熟悉泛型编程 3.2、了解C/C异常处理 3.3、熟练使用STL容器 3.4、熟悉C11新特性 4、Windows 平台的编程技术与调试技能 4.1、需要掌握的若干编程技术和基础知识 4.2、需…目录 1、引言 2、IDE 开发环境介绍 2.1、Visual Studio  2.2、Qt Creator   3、 C语言特性 3.1、熟悉泛型编程 3.2、了解C/C异常处理 3.3、熟练使用STL容器 3.4、熟悉C11新特性 4、Windows 平台的编程技术与调试技能 4.1、需要掌握的若干编程技术和基础知识 4.2、需要掌握的软件调试技能 5、开发 Windows 应用软件需要具备的其他技能 6、客户端 UI 编程技术 6.1、MFC 库 6.2、duilib 库 6.3、QT 库 6.4、Chromium 开源浏览器的 UI 库 6.5、Electron 界面框架 7、项目中常用的 C/C 开源库介绍 8、Windows 平台实用小工具介绍 8.1、代码编辑器 VSCode 8.2、代码查看编辑器 Source Insight 8.3、文本编辑器 Notepad 8.4、文件搜索工具 Everything 9、最后 C软件异常排查从入门到精通系列教程专栏文章列表欢迎订阅持续更新...https://blog.csdn.net/chenlycly/article/details/125529931C/C基础与进阶专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_11931267.htmlVC常用功能开发汇总专栏文章列表欢迎订阅持续更新...https://blog.csdn.net/chenlycly/article/details/124272585Windows C 软件开发从入门到精通专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_12695902.htmlC软件分析工具从入门到精通案例集锦专栏文章持续更新中...https://blog.csdn.net/chenlycly/article/details/131405795开源组件及数据库技术专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_12458859.html网络编程与网络问题分享专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_2276111.html       Windows下用C开发软件主要包含两大类一类是工具软件与客户端软件的开发一类是服务器程序的开发运行在Windows Server服务器上。我们日常工作学习使用的都是Windows桌面系统会频繁地使用到各式各样的工具与客户端软件。本文详细介绍一下Windows平台下用C开发应用软件的诸多内容以供大家借鉴或参考。 1、引言 在Windows系统中大多数客户端软件都是用C开发的当然也有少部分软件是用C#等语言实现的。我们日常使用的Windows桌面版的QQ、微信、腾讯会议、企业微信、字节飞书、阿里钉钉、百度网盘、迅雷、Chrome浏览器、Foxmail邮箱、远程软件向日葵/ToDesk等客户端软件都是用C开发实现的C是当前Windows平台开发应用软件的主流开发语言。本文详细介绍一下Windows平台下用C开发客户端软件的相关内容。 2、IDE 开发环境介绍 Windows中常用的C/C IDE开发工具主要有微软的Visual Studio和QT公司的QT Creator。当然也可以使用微软的VSCode、JetBrains公司的CLion甚至使用代码编辑查看工具Source Insight只能查看编辑不能编译去开发代码。这里我们重点介绍一下Visual Studio和QT Creator这两个IDE。 2.1、Visual Studio  微软的Visual Studio是Windows平台上最强大的IDE软件开发工具支持开发C/C、C#、F#、JavaScript、Python、TypeScript、Visual Basic、.NET等语言的应用程序。这里我们主要看C/C应用程序的开发。 Visual Studio有强大的代码编辑与调试功能发展到今天已经经理了多个版本的迭代。从经典的Visual Studio 6.0到Visual Studio 2003、Visual Studio 2008、Visual Studio 2010、Visual Studio 2012、Visual Studio 2015再到近几年的Visual Studio 2017、Visual Studio 2019、Visual Studio 2022。 其中Visual Studio 2010是比较经典的版本这个版本比较稳定且使用流畅很多公司都在用这个版本但该版本距今已经有10多年了很多开源的C/C代码已经不再支持。比如著名的WebRTC库最低只支持到Visual Studio 2017已经不再支持Visual Studio 2010了。很多公司为了使用新版本的开源库为保持库与库之间开发工具的统一已经将Visual Studio的版本升级到2017及以上的版本了。 新版本有新版本的优势新版本引入了很多新功能比如Visual Studio 2019的16.9版本开始就引入了Google的内存检测利器Address Sanitizer这个工具非常强大可以检测最让C/C程序员头疼的内存异常问题。 Linux有专用的内存检测工具Valgrind和Address Sanitizer但Windows只有一些老旧的工具对新版本的Visual Studio已经不再支持了Visual Studio 2019引入了内存检测利器Address Sanitizer是个很大的利好消息。 AddressSanitizer是Google提供的一款面向C/C语言的强大内存错误检测工具该工具原先只支持Linux现在也可以在Windows上使用了。微软在Visual Studio 2019的16.9版本们引入了强大的内存分析工具AddressSanitizer在安装Visual Studio 2019的16.9版本及以后的版本时会默认安装AddressSanitizer工具的 对于如何在VS中如何使用AddressSanitizer内存分析工具可以看一下微软官方文章的详细说明 在Visual Studio中使用AddressSanitizerhttps://docs.microsoft.com/zh-cn/cpp/sanitizers/asan?viewmsvc-170​至于AddressSanitizer的详细说明可以参见google官方页面 https://github.com/google/sanitizers/wiki/AddressSanitizerhttps://github.com/google/sanitizers/wiki/AddressSanitizer       推荐大家使用Visual Studio 2019或者以上的版本Visual Studio 2017不太好用在使用过程中会时不时的卡顿在调试大型程序时速度也很慢很卡而Visual Studio 2019要好很多。 虽然从Visual Studio 2019的16.9版本开始支持AddressSanitizer但据说支持的还不够全面感兴趣的朋友可以去尝试使用一下。 此外Visual Studio 2017之前的版本都是收费的当然大家用的基本都是破解版的从Visual Studio 2017开始开始提供免费的社区版本Commuity Version我们使用社区版本就可以了完全可以满足需求的。下载安装都比较方便直接搜索到官网下载社区版安装就行了。 基本上大多数Windows UI客户端程序都是用Visual Studio开发编译的。使用C/C开发的常用客户端程序有腾讯会议、QQ、PC版微信、阿里钉钉、字节飞书等他们都是用Visual Studio开发编译的。 此外不同版本的Visual Studio其对应的运行时库是不同的发布软件包时需要将对应版本的C/C运行时库带上。关于C/C运行时库及Windows通用运行时库的详细介绍可以查看我之前写的专题文章 C/C运行时库和UCRT系统通用运行时库总结及问题实例分享https://blog.csdn.net/chenlycly/article/details/139094024       之前根据多年的项目实践专门写文章分享过Visual Studio的高效调试技巧与调试方法文章链接如下 ​ Visual Studio调试技巧与实用方法总结实战经验分享https://blog.csdn.net/chenlycly/article/details/124884225 2.2、Qt Creator   Qt Creator是Qt为应用程序开发人员提供的一个跨平台集成开发环境可运行于Windows、Linux和MacOS操作系统 Qt Creator是跨平台的。使用Qt Creator开发的应用程序可以部署到电脑、嵌入式、移动操作系统或Web浏览器中。 在功能方面Qt Creator 包括项目生成向导、高级的 C 代码编辑器、浏览文件及类的工具、集成了 Qt Designer、图形化的 GDB 调试前端集成 qmake 构建工具等。开发基于QT界面库的C/C应用程序时我们一般都用QT Creator来开发。因为QT界面库是跨平台的所以如果要开发一套既支持Windows系统有支持Linux系统的桌面应用软件一般会选择使用QT界面库会使用QT Creator开发环境去开发。 Linux主要是用作服务器系统的为什么还要支持Linux系统呢因为现在国家正在推行国产化进程实现国产化替代会使用到麒麟、UOS和深度DeepIn等国产化桌面操作系统这些系统都是基于开源的Linux系统开发而来的本质上都属于Linux系统。很多软件需要支持国产化操作系统推出支持国产化系统的软件版本后面支持Linux的应用程序也会越来越多了。 比如视频监控头部厂商海康威视和大华的客户端软件为了既支持Windows也支持Linux均选择了QT进行开发。随着国产化进程的持续推进国产化操作系统的逐步普及支持函国产化系统的软件会越来越多QT也会变得越来越受欢迎QT开发技术开始变得火热起来。各大招聘网站上关于QT开发的岗位也越来越多了。 3、 C语言特性 做C/C开发首先要掌握C/C语言基础基础部分的内容这里就不赘述了这里重点讲讲一些常用的或者较新的C语言特性。 3.1、熟悉泛型编程 要熟悉泛型编程即熟悉模板函数和模板类在实际项目中很多时候会用到C标准库中的大多数类都是用模板实现的比如STL容器类。 3.2、了解C/C异常处理 需要了解C语言SEH结构化异常捕获__try...__except也要会用C的try...catch去捕获异常特别是在使用COM组件时需要使用到try...catch防止使用COM组件时出现异常导致程序发生崩溃闪退。可以捕获到代码或函数中异常只是当前功能不能正常的完成但不会因为异常引发程序发生崩溃。 关于使用_try...__except和try...catch的实例可以查看我的文章 使用__try...__except和try...catch捕获异常实例分享附源码https://blog.csdn.net/chenlycly/article/details/125331752 3.3、熟练使用STL容器 C标准库给我们提供的STL容器及相关的算法函数给我们编程带来了很大的便利。常用的STL容器有vector、list、map、set等有了这些STL容器我们基本不用去设计各种复杂的数据结构这些STL容器可能就能很好地满足我们的需求。 使用STL库提供的算法函数去高效快速地操作STL列表中的数据比如搜索容器中满足条件的数据对容器中的数据进行排序等。常见的算法函数有sort、count_if、find_if、remove_copy_if等使用这些算法函数比我们直接去遍历STL容器速度要快很多的我们在项目中多次用到。之前也写了相关的文章感兴趣的话可以去查看 如何使用C STL标准模板库中的算法函数附源码https://blog.csdn.net/chenlycly/article/details/139591764使用STL算法函数有效提升STL列表的搜索速度附源码https://blog.csdn.net/chenlycly/article/details/139591809 3.4、熟悉C11新特性 C11新特性很重要作为C开发人员很有必要去了解去学习不仅笔试面试时会涉及到大部分C招聘岗位在面试时都会问到C11的新特性而且开源代码中也在大规模的使用。 以很多视频会议及直播软件都在使用的开源WebRTC项目为例WebRTC代码中大篇幅地使用了C11及以上的新特性要读懂其源码必须要了解这些C的新特性。此外在日常项目代码中也会用到一些C11的新特性比如一些常用的关键字比如auto、override、final、nullptr、delete等、lamda表达式匿名函数、智能指针unique_ptr、shared_ptr和weak_ptr等。之前我也写了C11新特性的文章感兴趣也可以去看一下 C11中的智能指针unique_ptr、shared_ptr和weak_ptr详解https://blog.csdn.net/chenlycly/article/details/130918547C11 新特性 ① | C11 常用关键字实战详解https://blog.csdn.net/chenlycly/article/details/132701306C11 新特性 ② | 左值、左值引用、右值与右值引用https://blog.csdn.net/chenlycly/article/details/132746812C11 新特性 ③ | 可变参数模板介绍https://blog.csdn.net/chenlycly/article/details/132768378C11 新特性 ④ | 模板类 std::function 和标准库函数 std::bindhttps://blog.csdn.net/chenlycly/article/details/132774379C11 新特性 ⑤ | 仿函数与 lambda 表达式https://blog.csdn.net/chenlycly/article/details/132776343       当然我们可能还需要了解C14、C17甚至是C20的新特性特别是在阅读开源代码时可能会涉及到开源代码特别热衷于使用这些新特性。 这些C新特性可以让代码更简洁、更高效但也让C变得更加臃肿复杂更难于驾驭 4、Windows 平台的编程技术与调试技能 作为Windows C应用软件开发人员需要掌握动态库编程、Socket网络编程、多线程编程、数据库编程等主要编程技术。此外还要掌握一些C软件调试与异常排查的技能去高效快速地排查软件运行运行过程中遇到的各种问题。 4.1、需要掌握的若干编程技术和基础知识 做Windows C应用软件开发主要会涉及到两大块一个是业务开发一个UI界面编程这里面会涉及到多方面的编程技术这些编程技术在日常的项目中可能会用到。比如动态链接库编程、数据库编程、Socket网络编程、多线程编程多线程创建及多线程间的通信、多进程编程进程间的通信、UI界面编程等。其中UI界面编程需要熟悉常见的UI界面库比如微软的MFC库、开源的duilib库、跨平台的QT库、Chromium UI界面库等。一般根据项目的需要掌握一到两个界面库就可以了后面会对这些界面库做个大概的介绍。 另外还要掌握一些常用的设计模式比如单例模式、工厂模式、观察者模式等。还要学习和熟悉一些常用的C/C开源库的使用比如jsoncpp、TinyXML、libcurl、sqlite、duilib、libwebsockets、sdl、muduo、boost等。 此外现在的软件系统都是基于网络的通信数据需要经过网络传输所以还需要掌握一些基础的网络知识可以抓包分析多种网络故障和网络数据通信的异常。在和Linux服务器通信和调试业务时可能需要通过Linux命令去查看服务器及服务器程序的运行状态所以可能需要掌握一些常用的Linux命令。 关于网络基础知识及网络问题排查实战可以查看我的文章【网络入门】详解常用的基础网络知识面试笔试常考内容https://blog.csdn.net/chenlycly/article/details/124433936【网络进阶】网络问题排查实例集锦实战经验分享https://blog.csdn.net/chenlycly/article/details/124643918       对于C/C开发的入门者可以查看我之前写的《C/C学习路线》 C/C学习路线总结与分享https://blog.csdn.net/chenlycly/article/details/127191075 4.2、需要掌握的软件调试技能 考察一个开发人员的水平一方面要看其编码与设计能力另一方面要看其软件调试能力排查软件异常的技能。所以软件调试能力也非常重要作为一个合格的进阶开发人员系统地掌握C软件调试技能去高效地处理各种软件异常问题很有必要 首先要熟练使用IDE开发工具掌握IDE工具的常用调试技巧与方法。对于Visual Studio的常用调试方法与技能可以查看我的文章 Visual Studio调试技巧与实用方法总结实战经验分享https://blog.csdn.net/chenlycly/article/details/124884225       然后要系统地掌握C软件调试与异常排查的技能。比如要了解引发C软件异常的常见原因要掌握排查C软件异常的常用方法。要熟练使用多个软件工具去分析排查各种软件问题比如SPY查看窗口属性、Dpendency Walker查看模块的依赖关系、GDIView排查GDI对象泄露、Process Explorer排查高CPU占用等、Process Monitor监测文件活动和注册表活动、API Minitor监测程序对API函数的调用、Windbg调试器分析软件异常卡死或崩溃静态分析dump文件和动态调试目标进程、IDA反汇编工具查看二进制文件的汇编代码等。可以通过项目实战分析案例去学习软件调试与异常排查所涉及到的具体知识点与细节并把这些技能积极主动地应用到项目实战中去。 对于引发C软件异常的常见原因我之前根据项目实战做过详细的总结可以查看文章 引发C软件异常的常见原因分析与总结实战经验分享https://blog.csdn.net/chenlycly/article/details/124996473      对于排查C软件异常的常用方法我之前根据项目实战也做过详细的总结可以查看文章 排查C软件异常的常见思路与方法实战经验总结https://blog.csdn.net/chenlycly/article/details/120629327       通过线上沟通交流及对身边同事的观察发现很多C开发人员在软件调试及异常排查方面都比较欠缺甚至有时会直接影响工作效率和项目进度为了解决这一普遍存在的痛点问题推出了一套成体系的《C软件调试与异常排查从入门到精通》精品技术专栏专栏中的内容均来自项目实战是实战经验总结有很强的实战参考价值欢迎大家订阅该精品专栏 C软件调试与异常排查从入门到精通系列文章汇总https://blog.csdn.net/chenlycly/article/details/125529931 本专栏根据多年C软件异常排查的项目实践系统地总结了引发C软件异常的常见原因以及排查C软件异常的常用思路与方法详细讲述了C软件的调试方法与手段以图文并茂的方式给出具体的项目问题实战分析实例很有实战参考价值带领大家逐步掌握C软件调试与异常排查的相关技术适合基础进阶和想做技术提升的相关C开发人员考察一个开发人员的水平一是看其编码及设计能力二是要看其软件调试能力所以软件调试能力排查软件异常的能力很重要必须重视起来能解决一般人解决不了的问题既能提升个人能力及价值也能体现对团队及公司的贡献专栏中的文章都是通过项目实战总结出来的包含大量项目问题实战分析案例有很强的实战参考价值专栏文章还在持续更新中预计文章篇数能更新到200篇以上 该精品技术专栏的订阅量已达到450多个专栏中包含大量项目实战分析案例有很强的实战参考价值广受好评专栏文章持续更新中预计更新到200篇以上欢迎订阅 5、开发 Windows 应用软件需要具备的其他技能 在Windows平台上开发应用软件除了上面讲到的编程及调试技能之外我们还需要了解Windows窗口特性与窗口编程了解Windows窗口风格、窗口消息机制以及窗口绘制机制、了解Windows系统及特性了解exe程序的启动过程、Windows文件系统和Windows特性、了解字符编码比如Unicode、ANSI和utf8等、熟悉IDE开发工具的各种工程属性配置、熟悉常用的Windows API函数、学会使用多个软件工具去分析各种软件问题比如SPY、Dpendency Walker、Process Explorer、Process Monitor、Windbg等等具体说明如下所示 1要了解并会操作Windows窗口比如窗口的创建与显示、窗口的Z序、窗口的最大化与最小化显示、窗口的前置与置顶、修改窗口风格Style、父子窗口及兄弟窗口的关系、获取窗口的信息、通过信息查找窗口等。2要了解窗口的消息机制熟悉常见的Windows标准窗口消息可以给窗口发送消息需要时可以拦截窗口的消息。3要了解窗口的绘制机制要会使用GDI和GDI加载图片、绘制窗口这里面会涉及到双缓冲绘图。 4了解常用窗口的创建与常用控件的使用了解对话框、菜单、工具栏和状态栏的创建与使用了解Button按钮、Edit编辑框、ComboBox组合框、Text文本框、list列表、Progress进度条等常用控件的使用。5要了解IDE中工程属性的配置通过对属性的配置实现对主程序或模块的编译选项控制。6要了解常见的字符编码比如ANSI编码、UNICODE编码、UTF8编码、中文GBK编码以及这些字符编码之间的转换。在支持多语言的时候肯定会涉及到一般UI界面的字符串使用UNICODE编码和服务器通信的数据中的字符串使用UTF8编码。7要了解Windows exe程序的启动过程便于分析软件启动过程中遇到的各种异常问题。8要了解Windows文件系统和系统特性比如系统路径和常见应用程序路径、UAC权限管理员权限与标准用户权限等、常见第三方软件的注入行为等。9要熟悉Windows常用API函数学会使用API函数去实现诸多的功能。要学会使用微软MSDN到MSDN上去查看API函数的详细说明比如API函数的参数说明、使用注意细节以及API函数示例代码等。10要熟练使用多个软件工具去分析排查各种软件问题比如SPY查看窗口属性、Dpendency Walker查看模块的依赖关系、GDIView排查GDI对象泄露、Process Explorer排查高CPU占用等、Process Monitor监测文件活动和注册表活动、API Minitor监测程序对API函数的调用、Windbg调试器分析软件异常卡死或崩溃静态分析dump文件和动态调试目标进程、IDA反汇编工具查看二进制文件的汇编代码等。 借助这些分析工具可以高效排查和解决项目中遇到的问题。对于非崩溃问题可以尝试使用上述小工具分析对于崩溃问题则使用Windbg调试器分析。有包含异常上下文信息的dump文件则用Windbg静态分析没有dump文件的则用Windbg调试目标进程。关于这些常用工具的详细介绍可以查看我之前写的两篇文章C软件开发值得推荐的十大高效软件分析工具https://blog.csdn.net/chenlycly/article/details/135431130C 软件常用分析工具及项目实战问题分析案例集锦https://blog.csdn.net/chenlycly/article/details/135431130 上述要点中的技能是需要通过不断的编码调试实践获取的不是一蹴而就的是一个不断实践、不断积累的过程。 作为一名软件开发人员应当通过实践和学习不断提升自己的技术水平以适应不断变化的技术环境和项目需求。  在这里给大家重点推荐一下我的几个热门畅销专栏欢迎订阅博客主页还有其他专栏可以去查看 专栏1该精品技术专栏的订阅量已达到430多个专栏中包含大量项目实战分析案例有很强的实战参考价值广受好评专栏文章持续更新中预计更新到200篇以上欢迎订阅 C软件调试与异常排查从入门到精通系列文章汇总https://blog.csdn.net/chenlycly/article/details/125529931 本专栏根据多年C软件异常排查的项目实践系统地总结了引发C软件异常的常见原因以及排查C软件异常的常用思路与方法详细讲述了C软件的调试方法与手段以图文并茂的方式给出具体的项目问题实战分析实例很有实战参考价值带领大家逐步掌握C软件调试与异常排查的相关技术适合基础进阶和想做技术提升的相关C开发人员 考察一个开发人员的水平一是看其编码及设计能力二是要看其软件调试能力所以软件调试能力排查软件异常的能力很重要必须重视起来能解决一般人解决不了的问题既能提升个人能力及价值也能体现对团队及公司的贡献 专栏中的文章都是通过项目实战总结出来的包含大量项目问题实战分析案例有很强的实战参考价值专栏文章还在持续更新中预计文章篇数能更新到200篇以上 专栏2   C常用软件分析工具从入门到精通案例集锦汇总专栏文章持续更新中...https://blog.csdn.net/chenlycly/article/details/131405795 常用的C软件辅助分析工具有PE工具、Dependency Walker、Process Explorer、Process Monitor、API Monitor、Clumsy、Windbg、IDA Pro等本专栏详细介绍如何使用这些工具去巧妙地分析和解决日常工作中遇到的问题很有实战参考价值 专栏3  C/C基础与进阶专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_11931267.html 以多年的开发实战为基础总结并讲解一些的C/C基础与进阶内容以图文并茂的方式对相关知识点进行详细地展开与阐述专栏涉及了C/C领域的多个方面的内容同时给出C/C及网络方面的常见笔试面试题并详细讲述Visual Studio常用调试手段与技巧 专栏4    VC常用功能开发汇总专栏文章持续更新中...https://blog.csdn.net/chenlycly/article/details/124272585 将10多年C开发实践中常用的功能以高质量的代码展现出来。这些常用的高质量规范代码可以直接拿到项目中使用能有效地解决软件开发过程中遇到的问题。 专栏5  Windows C 软件开发从入门到精通专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_12695902.html 根据多年C软件开发实践详细地总结了Windows C 应用软件开发相关技术实现细节分享了大量的实战案例很有实战参考价值。 6、客户端 UI 编程技术 客户端软件一方面要将业务数据加载到UI界面上展现出来另一方面要提供业务操作的入口所以客户端软件在实现时主要包含UI界面开发和软件业务开发两大块。不同公司的产品业务会有很大的不同此处我们不讨论具体的业务只讨论比较共性的UI编程技术。软件UI界面编程就是根据软件的需求和UI设计师的UI设计效果去实现软件的UI界面并将业务数据展现在UI界面上这一实现过程中需要用到一些常用的UI界面库。 常用的C UI界面库主要有Visual Studio自带的MFC界面库基于directui思想的开源duilib界面库支持跨平台的QT界面库以及Chromium浏览器的UI界面库当然还有一些收费的界面库收费的界面库不在本文的讨论之列。其中MFC库和duilib库是基于Windows窗口设计的只能用于Windows C客户端软件的开发QT是跨平台的既能用于Windnows客户端开发也能用于Linux客户端的开发。Windows上C软件的开发主要使用Visual Studio开发环境如果用到QT一般使用专用的QT Creator开发环境。 此外最近几年逐渐火起来的开源跨平台应用程序开发框架Electron和Flutter也受到了很多公司的青睐在不少软件中得到了应用。下面我们简单介绍一下Electron框架的内容至于Flutter框架属于移动开发领域的已经超出我负责的范畴在此就不做介绍了。 6.1、MFC 库 MFC是微软的IDE开发环境Visual Studio自带的界面库原生的MFC界面比较简陋界面效果很一般。MFC是个很古老的库虽然Visual Studio更新了很多代但MFC库始终维持在多年前的效果上基本没有做任何升级和改进。 平时我们使用MFC库去开发一些小的工具软件会很方便通过简单的可视化拖拽控件的操作既可构建出软件的界面不需要额外的去做界面直接使用MFC就完全能满足要求。但对于一些商业软件原生的MFC库是没法满足要求的如果要用MFC开发软件界面则需要继承MFC库中的控件类重写这些控件类的方法去重绘界面并进行贴图美化但要实现比较酷炫的界面效果使用MFC去实现就会很吃力了。 对于MFC库还有个比较大的问题每个控件都是一个窗口比如Static文本控件、按钮控件等都需要单独绘制处理每个窗口都会占用一定数量的GDI对象。如果软件中打开的窗口比较多这个软件占用GDI对象总数会比较多。特别是IM聊天软件每个聊天窗口会占用一两百个GDI对象在做极限测试时打开几十聊天窗口这样软件进程占用的GDI对象总数就会接近或达到1万上限就会导致GDI绘图出现异常导致程序发生闪退。 现在的商业软件基本都不再使用MFC了但有个行业除外。很多炒股类软件的客户端比如大智慧客户端软件还在用MFC库炒股软件的界面主要来显示股票数据对界面的美化效果没有大的要求使用MFC库做一些基本的美化即可。 6.2、duilib 库 duilib库是基于directui思想实现的UI界面库相对于MFC要灵活、好用很多可以较容易地去实现一些酷炫的界面效果。很多知名的公司都在使用该库比如ZOOM视频会议客户端、PC版微信、爱奇艺PPS客户端、京东咚咚客户端、百度网盘客户端、酷我音乐、酷狗音乐、华为PC版手机助手等。有些中小型公司也在使用该界面库比如2345公司的好压等产品。 很多公司在开源的duilib库的基础上根据产品和项目的需要对duilib库进行了大量的改进和优化并增加了一些新功能。网易和腾讯都开源了各自基于duilib改进而来的界面库原生的duilib我们使用过但腾讯和网易的开源版本没有研究过不知道效果如何不知道相对于原生的duilib都做了哪些改进。回头有时间的时候可以去研究一下。 6.3、QT 库 QT是一套支持跨平台的界面库既支持Windows平台也支持Linux平台甚至支持移动平台。如果要开发Linux系统中的客户端软件则需要使用QT界面库。随着国产化系统的推行与普及很多软件既要支持在Windows上运行也要支持在国产化Linux桌面系统上运行。 有些厂商为了实现对Windows和Linux双平台的支持直接选择使用QT界面库开发客户端软件而不再选择Windows用Windows专用界面库开发、Linux用QT开发的方式。比如视频监控大型厂商海康威视和浙江大华他们的视频监控客户端软件都是直接采用QT界面库开发的。很多做人工智能的公司都选择QT进行应用软件的开发。 近年来在国产化大潮的推动下QT的支持者和使用者越来越多QT开发也变得越来越火招聘市场上对QT开发人员的需求也越来越大很多大公司的软件也在选择使用QT开发。QT当前的火爆场面在几年前是不曾有过的。 关于QT界面库的由来与发展以及QT的详细介绍可以查看我的文章 【 Qt 的“前世”与“今生”】Qt 的起源 | Qt 的发展历程 | 为什么选择 Qt | Qt 的授权模式 | Qt 版本选择 | Qt Widgets和QML | Qt 程序发布https://blog.csdn.net/chenlycly/article/details/134769283 6.4、Chromium 开源浏览器的 UI 库 Chromium是Google的一个久负盛名的浏览器C开源项目它是Google的Chrome浏览器背后的引擎几乎包含了Chrome浏览器的所有实现代码其目的是为了创建一个安全、稳定和快速的通用浏览器。 很多浏览器使用的都是Chromium开源内核比如微软Win10系统中推出的Edge浏览器抛弃了IE内核转而使用Chromium内核。国内知名的360浏览器、QQ浏览器、傲游浏览器它们用的都是Chromium内核 只是开发了各自的UI皮肤和界面增加了一些额外的用户功能。接下来说到的CEF嵌入式浏览器框架也是基于Chromium内核实现的。 除了浏览器使用到了开源Chromium的内核很多Windows应用软件也使用到了Chromium中的内容使用到了Chromium中的UI组件。比如字节的飞书客户端、阿里的钉钉客户端、华为的WeLink客户端、网易云音乐与有道云笔记均使用到了Chromium中的UI组件。 那如何去判断一个客户端软件是否使用了Chromium浏览器的UI组件了呢其实很简单可以使用Visual Studio自带的SPY工具去探测一下这些软件的窗口属性如果窗口的标题和类名中看到了Chrome的字样就基本能确定软件的界面就是用Chromium的UI组件开发的。比如下图中的Chrome Legacy Window和Chrome_RenderWidgetHostHWND字符串 6.5、Electron 界面框架 Electron是一个由OpenJS基金会和活跃的贡献者社区维护的开源项目。Electron 基于Node.js和Chromium是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用程序的框架被Atom编辑器和许多其他应用程序使用。Electron 兼容 Mac、Windows 和 Linux可以构建出三个平台的应用程序。 QQ今年发布基于全新的跨平台解决方案QQNT架构该架构主要采用了Electron 技术QQ首次实现了Window、macOS、Linux多个系统平台之间QQ架构的统一 与此同时QQ变得更稳定更流程更便于维护。关于 QQ NT 全新架构的更详细说明可以参考文章 QQ 用 Electron 重构后终实现 Linux、macOS、Windows 三端架构的统一https://blog.csdn.net/csdnsevenn/article/details/131566192       之前听说Electron框架很耗资源比如会占用大量的内存资源程序运行会变慢总之Electron框架比较难驾驭对技术要求比较高开发控制成本比较高。字节跳动的飞书几年前使用的就是Electron框架但后来又退回到Chromium开源UI框架。之前接入我们SDK的客户也在使用Electron开发客户端软件。因为我们没使用过Electron对Electron框架知之甚少在此就不做深入的介绍了。 腾讯客户端工程师对大家比较关注的一些Electron问题进行了解答 https://blog.csdn.net/techforward/article/details/128257109https://blog.csdn.net/techforward/article/details/128257109 大家印象中都觉得Electron会很笨重很占资源。Electron框架确实一般的公司很难驾驭的腾讯应该做了深度优化和改进特别是资源占用方面 7、项目中常用的 C/C 开源库介绍 在Windows C应用软件项目中会使用到很多C开源库比如 1处理json的jsoncpp库json串的构建与解析。 2处理xml的TinyXML库XML串的构建与解析。 3支持SMTP/HTTP/HTTPS等多协议网络传输开源库libcurl库使用SMTP协议发送邮件、使用HTTP/HTTPS发起HTTP请求。 4处理文件压缩与解压缩的zip.cpp和unzip.cpp支持文件的压缩与解压。 5二维码生成库libqr生成二维码图片。 6png图片处理库libpng读写png图片。 7图片读取解析库stb_image图片读取与解析。 8实现websocket通信的libwebsockets库客户端与服务器之间进行websoket通信。 9轻量级开源数据库SQLite存放本地数据。 10多媒体处理开源库FFmpeg包含音视频采集与编码、音视频解码、视频格式转换、视频抓图、给视频加水印等功能。 11实时音视频处理开源库WebRTC包含音视频采集、编码、网络传输解码显示等。12Chromium嵌入式框架开源库CEF嵌入浏览器控件。 13跨平台多媒体开发库SDL库音视频采集、编码、解码显示等。 14数据实时压缩解压库zlib对字节流数据进行实时的压缩与解压缩。 15异常捕获库CrashRpt/CrashPad捕获软件运行过程中的异常。 16开源操作系统ReactOS查看系统源码可作为Windows系统代码实现的参考有时能可以通过查看系统函数的实现去辅助解决问题。 17网络通信库boost、muduo和libevent等。 8、Windows 平台实用小工具介绍 对于代码查看编辑工具除了重量级的IDE开发工具之外还可以使用微软的VSCode和Source Dynamics公司的Source Insight。此外在日常工作中推荐大家使用Notepad和Everything这两个轻量级的实用工具使用起来非常方便、高效。 8.1、代码编辑器 VSCode Visual Studio Code简称VSCode是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的针对于编写现代Web和云应用的跨平台代码编辑器。它具有对JavaScriptTypeScript和Node.js的内置支持并具有丰富的其他语言例如CCJavaPythonPHPGo和运行时例如.NET和Unity扩展的生态系统。 该编辑器也集成了所有一款现代编辑器所应该具备的特性包括语法高亮syntax hight lighting可定制的热键绑定customizable keyboard bindings括号匹配bracket matching以及代码片段收集snippets。还会拥有对 Git 的开箱即用的支持。 VS Code将代码编辑器的简单性与开发人员对其核心 edit - build - debug 周期所需的功能结合在一起。它提供了全面的代码编辑、导航和理解支持、以及轻量级调试丰富的可扩展性模型以及与现有工具的轻量级集成。此外微软在大力推广VS Code其更新的频率很快每月更新一次其中包含新功能和错误修复。 严格意义上讲VS Code只是个代码查看和编辑工具本身不提供编译器没法对代码进行编译。如果要编译代码则需要安装相关的插件。 8.2、代码查看编辑器 Source Insight Source Insight是一个面向项目开发的轻量级程序编辑器和代码浏览器它拥有内置的对C/C、C#和Java等程序的分析。能分析代码并在工作的同时动态维护它自己的符号数据库并自动显示有用的上下文信息。Source Insight提供了最快速的对代码的导航和任何程序编辑器的源信息。 Source Insight是个小巧轻便的工具可以快速启动实用过程中占用很少的资源CPU和内存资源可以快速地浏览和编辑代码和大型臃肿的IDE软件相比这些都是很大的优势。作为一个编辑器是没有编译代码的功能的。 在查看学习大型开源库代码时强烈建议大家使用Source Insight比如大型开源项目WebRtc和Chromium。这些大型代码的大小就占到了数个GB以上且很多这种大型的开源库都是通过交叉编译工具编译的并没有提供Visual Studio工程文件不好使用Visual Studio去查看代码。这时正好可以使用Source Insight只要在Source Insight创建一个工程将开源代码的根目录指定到工程中即可。 关于如何使用Source Insight工具如何创建Source Insight工程可以查看我之前写的一篇文章 使用Source Insight查看编辑代码https://blog.csdn.net/chenlycly/article/details/124347857 8.3、文本编辑器 Notepad Notepad是程序员必备的文本编辑器该软件软件功能非常强大界面简洁明晰、操作方便快捷设计得很人性化。Notepad支持C、C、Java、C#、XML、HTML、PHP、JS等27种编程语言。该工具比Windows系统自带的记事本Notepad.exe要强大太多可完美地取代Windows系统的记事本。 可以使用Notepad查看代码它支持语法高亮显示。Notepad支持多标签页可以同时打开多个文件。我们经常使用Notepad查看日志文件支持在文件中搜索可以对匹配到的关键字的次数进行计数并将搜到的记录显示出来可以切换查看这对查看软件运行日志非常方便。还可以使用Notepad记录文本内容该工具启动快使用便捷这是其一大优势。这是我们日常开发工作中用的最多的软件之一。 8.4、文件搜索工具 Everything Everything是voidtools开发的一款文件搜索工具它体积小巧启动迅速界面简洁易用。搜索文件时快速建立索引快速搜索同时占用极低的系统资源还能实时跟踪文件变化。其搜索速度比Windows自带的搜索要快得多。 使用该工具在搜索磁盘上的文件或文档时不是一般的好用搜索速度真的非常快强烈推荐大家使用。   9、最后 本文概括性地介绍了Windows C 应用软件开发相关的内容希望能给Windows C开发人员特别是入门级的新人提供一些借鉴或参考。
http://www.dnsts.com.cn/news/132154.html

相关文章:

  • 妇幼网站建设ppt网站后台 添加用户
  • 自建网站软件wordpress表单信息在哪里
  • 怎么选一个适合自己的网站做网站推广 seo的
  • 成都哪家网站建设好psd 网站
  • 自己做网站视频教程wordpress 功能介绍
  • 做动态图的网站房地产销售经理职责和工作内容
  • 加强机关网站建设app小游戏开发公司
  • 网站seo关键字wordpress网站秒开
  • 专业网站建设价格最优郑州建网站的好处
  • 徐州cms模板建站广告公司名字起名大全
  • html5微网站模板营销型网站设计内容
  • 胶南市场建设服务中心网站品牌推广公司排名
  • 网站所属权介绍一学一做视频网站
  • 做网站廊坊硬件开发语言有哪些
  • 门户网站定制开发工程竣工验收公示网
  • 北京建设工程建设交易信息网站网站业务怎么做的
  • 做网站客户最关心的是什么深圳网站建设ppchsj
  • 网站建设与规划案例南昌网站建设哪家好薇
  • 网站标题组合网页设计与网站建设 石油大学
  • 一个人可以建设网站吗网站开发liucheng
  • 有什么做图文长图的网站吗做实体店推广的网站
  • 长垣住房和城乡建设局 网站seo网站推广优化论文
  • 免费 开源 企业网站专业定制网页设计
  • 网站栏目词ip开源网站fpga可以做点什么用
  • 北京电力建设公司培训学校网站自己做视频网站能赚钱吗
  • 网站标题应怎设置在上阿里云做网站
  • 秦皇岛手机网站制作价格做足球推荐网站能赚钱吗
  • 网站开发不足之处广告公司怎么设置网站关键字
  • 网站推广软件哪个最实惠哪个网站能帮助做路书
  • 自己做网站选什么好网站开发可选择的方案有