96SEO 2026-02-20 02:00 0
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

软件开发从入门到精通专栏文章持续更新中...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开发应用软件的诸多内容以供大家借鉴或参考。
在Windows系统中大多数客户端软件都是用C开发的当然也有少部分软件是用C#等语言实现的。
我们日常使用的Windows桌面版的QQ、微信、腾讯会议、企业微信、字节飞书、阿里钉钉、百度网盘、迅雷、Chrome浏览器、Foxmail邮箱、远程软件向日葵/ToDesk等客户端软件都是用C开发实现的C是当前Windows平台开发应用软件的主流开发语言。
本文详细介绍一下Windows平台下用C开发客户端软件的相关内容。
Creator。
当然也可以使用微软的VSCode、JetBrains公司的CLion甚至使用代码编辑查看工具Source
Insight只能查看编辑不能编译去开发代码。
这里我们重点介绍一下Visual
Studio是Windows平台上最强大的IDE软件开发工具支持开发C/C、C#、F#、JavaScript、Python、TypeScript、Visual
Basic、.NET等语言的应用程序。
这里我们主要看C/C应用程序的开发。
Studio有强大的代码编辑与调试功能发展到今天已经经理了多个版本的迭代。
从经典的Visual
2010是比较经典的版本这个版本比较稳定且使用流畅很多公司都在用这个版本但该版本距今已经有10多年了很多开源的C/C代码已经不再支持。
比如著名的WebRTC库最低只支持到Visual
2010了。
很多公司为了使用新版本的开源库为保持库与库之间开发工具的统一已经将Visual
2019的16.9版本开始就引入了Google的内存检测利器Address
Sanitizer这个工具非常强大可以检测最让C/C程序员头疼的内存异常问题。
Linux有专用的内存检测工具Valgrind和Address
Sanitizer但Windows只有一些老旧的工具对新版本的Visual
AddressSanitizer是Google提供的一款面向C/C语言的强大内存错误检测工具该工具原先只支持Linux现在也可以在Windows上使用了。
微软在Visual
2019的16.9版本们引入了强大的内存分析工具AddressSanitizer在安装Visual
2019的16.9版本及以后的版本时会默认安装AddressSanitizer工具的
对于如何在VS中如何使用AddressSanitizer内存分析工具可以看一下微软官方文章的详细说明
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
2017不太好用在使用过程中会时不时的卡顿在调试大型程序时速度也很慢很卡而Visual
2019的16.9版本开始支持AddressSanitizer但据说支持的还不够全面感兴趣的朋友可以去尝试使用一下。
2017之前的版本都是收费的当然大家用的基本都是破解版的从Visual
Version我们使用社区版本就可以了完全可以满足需求的。
下载安装都比较方便直接搜索到官网下载社区版安装就行了。
Studio开发编译的。
使用C/C开发的常用客户端程序有腾讯会议、QQ、PC版微信、阿里钉钉、字节飞书等他们都是用Visual
Studio其对应的运行时库是不同的发布软件包时需要将对应版本的C/C运行时库带上。
关于C/C运行时库及Windows通用运行时库的详细介绍可以查看我之前写的专题文章
C/C运行时库和UCRT系统通用运行时库总结及问题实例分享https://blog.csdn.net/chenlycly/article/details/139094024
Studio调试技巧与实用方法总结实战经验分享https://blog.csdn.net/chenlycly/article/details/124884225
Creator是Qt为应用程序开发人员提供的一个跨平台集成开发环境可运行于Windows、Linux和MacOS操作系统
Creator开发的应用程序可以部署到电脑、嵌入式、移动操作系统或Web浏览器中。
构建工具等。
开发基于QT界面库的C/C应用程序时我们一般都用QT
Creator来开发。
因为QT界面库是跨平台的所以如果要开发一套既支持Windows系统有支持Linux系统的桌面应用软件一般会选择使用QT界面库会使用QT
Linux主要是用作服务器系统的为什么还要支持Linux系统呢因为现在国家正在推行国产化进程实现国产化替代会使用到麒麟、UOS和深度DeepIn等国产化桌面操作系统这些系统都是基于开源的Linux系统开发而来的本质上都属于Linux系统。
很多软件需要支持国产化操作系统推出支持国产化系统的软件版本后面支持Linux的应用程序也会越来越多了。
比如视频监控头部厂商海康威视和大华的客户端软件为了既支持Windows也支持Linux均选择了QT进行开发。
随着国产化进程的持续推进国产化操作系统的逐步普及支持函国产化系统的软件会越来越多QT也会变得越来越受欢迎QT开发技术开始变得火热起来。
各大招聘网站上关于QT开发的岗位也越来越多了。
做C/C开发首先要掌握C/C语言基础基础部分的内容这里就不赘述了这里重点讲讲一些常用的或者较新的C语言特性。
要熟悉泛型编程即熟悉模板函数和模板类在实际项目中很多时候会用到C标准库中的大多数类都是用模板实现的比如STL容器类。
需要了解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
C标准库给我们提供的STL容器及相关的算法函数给我们编程带来了很大的便利。
常用的STL容器有vector、list、map、set等有了这些STL容器我们基本不用去设计各种复杂的数据结构这些STL容器可能就能很好地满足我们的需求。
使用STL库提供的算法函数去高效快速地操作STL列表中的数据比如搜索容器中满足条件的数据对容器中的数据进行排序等。
常见的算法函数有sort、count_if、find_if、remove_copy_if等使用这些算法函数比我们直接去遍历STL容器速度要快很多的我们在项目中多次用到。
之前也写了相关的文章感兴趣的话可以去查看
STL标准模板库中的算法函数附源码https://blog.csdn.net/chenlycly/article/details/139591764使用STL算法函数有效提升STL列表的搜索速度附源码https://blog.csdn.net/chenlycly/article/details/139591809
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
常用关键字实战详解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::bindhttps://blog.csdn.net/chenlycly/article/details/132774379C11
表达式https://blog.csdn.net/chenlycly/article/details/132776343
当然我们可能还需要了解C14、C17甚至是C20的新特性特别是在阅读开源代码时可能会涉及到开源代码特别热衷于使用这些新特性。
这些C新特性可以让代码更简洁、更高效但也让C变得更加臃肿复杂更难于驾驭
C应用软件开发人员需要掌握动态库编程、Socket网络编程、多线程编程、数据库编程等主要编程技术。
此外还要掌握一些C软件调试与异常排查的技能去高效快速地排查软件运行运行过程中遇到的各种问题。
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学习路线总结与分享https://blog.csdn.net/chenlycly/article/details/127191075
考察一个开发人员的水平一方面要看其编码与设计能力另一方面要看其软件调试能力排查软件异常的技能。
所以软件调试能力也非常重要作为一个合格的进阶开发人员系统地掌握C软件调试技能去高效地处理各种软件异常问题很有必要
首先要熟练使用IDE开发工具掌握IDE工具的常用调试技巧与方法。
对于Visual
Studio调试技巧与实用方法总结实战经验分享https://blog.csdn.net/chenlycly/article/details/124884225
然后要系统地掌握C软件调试与异常排查的技能。
比如要了解引发C软件异常的常见原因要掌握排查C软件异常的常用方法。
要熟练使用多个软件工具去分析排查各种软件问题比如SPY查看窗口属性、Dpendency
Walker查看模块的依赖关系、GDIView排查GDI对象泄露、Process
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篇以上欢迎订阅
在Windows平台上开发应用软件除了上面讲到的编程及调试技能之外我们还需要了解Windows窗口特性与窗口编程了解Windows窗口风格、窗口消息机制以及窗口绘制机制、了解Windows系统及特性了解exe程序的启动过程、Windows文件系统和Windows特性、了解字符编码比如Unicode、ANSI和utf8等、熟悉IDE开发工具的各种工程属性配置、熟悉常用的Windows
API函数、学会使用多个软件工具去分析各种软件问题比如SPY、Dpendency
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
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篇以上
C常用软件分析工具从入门到精通案例集锦汇总专栏文章持续更新中...https://blog.csdn.net/chenlycly/article/details/131405795
Pro等本专栏详细介绍如何使用这些工具去巧妙地分析和解决日常工作中遇到的问题很有实战参考价值
C/C基础与进阶专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_11931267.html
以多年的开发实战为基础总结并讲解一些的C/C基础与进阶内容以图文并茂的方式对相关知识点进行详细地展开与阐述专栏涉及了C/C领域的多个方面的内容同时给出C/C及网络方面的常见笔试面试题并详细讲述Visual
VC常用功能开发汇总专栏文章持续更新中...https://blog.csdn.net/chenlycly/article/details/124272585
将10多年C开发实践中常用的功能以高质量的代码展现出来。
这些常用的高质量规范代码可以直接拿到项目中使用能有效地解决软件开发过程中遇到的问题。
软件开发从入门到精通专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_12695902.html
应用软件开发相关技术实现细节分享了大量的实战案例很有实战参考价值。
客户端软件一方面要将业务数据加载到UI界面上展现出来另一方面要提供业务操作的入口所以客户端软件在实现时主要包含UI界面开发和软件业务开发两大块。
不同公司的产品业务会有很大的不同此处我们不讨论具体的业务只讨论比较共性的UI编程技术。
软件UI界面编程就是根据软件的需求和UI设计师的UI设计效果去实现软件的UI界面并将业务数据展现在UI界面上这一实现过程中需要用到一些常用的UI界面库。
Studio自带的MFC界面库基于directui思想的开源duilib界面库支持跨平台的QT界面库以及Chromium浏览器的UI界面库当然还有一些收费的界面库收费的界面库不在本文的讨论之列。
其中MFC库和duilib库是基于Windows窗口设计的只能用于Windows
C客户端软件的开发QT是跨平台的既能用于Windnows客户端开发也能用于Linux客户端的开发。
Windows上C软件的开发主要使用Visual
此外最近几年逐渐火起来的开源跨平台应用程序开发框架Electron和Flutter也受到了很多公司的青睐在不少软件中得到了应用。
下面我们简单介绍一下Electron框架的内容至于Flutter框架属于移动开发领域的已经超出我负责的范畴在此就不做介绍了。
Studio自带的界面库原生的MFC界面比较简陋界面效果很一般。
MFC是个很古老的库虽然Visual
Studio更新了很多代但MFC库始终维持在多年前的效果上基本没有做任何升级和改进。
平时我们使用MFC库去开发一些小的工具软件会很方便通过简单的可视化拖拽控件的操作既可构建出软件的界面不需要额外的去做界面直接使用MFC就完全能满足要求。
但对于一些商业软件原生的MFC库是没法满足要求的如果要用MFC开发软件界面则需要继承MFC库中的控件类重写这些控件类的方法去重绘界面并进行贴图美化但要实现比较酷炫的界面效果使用MFC去实现就会很吃力了。
对于MFC库还有个比较大的问题每个控件都是一个窗口比如Static文本控件、按钮控件等都需要单独绘制处理每个窗口都会占用一定数量的GDI对象。
如果软件中打开的窗口比较多这个软件占用GDI对象总数会比较多。
特别是IM聊天软件每个聊天窗口会占用一两百个GDI对象在做极限测试时打开几十聊天窗口这样软件进程占用的GDI对象总数就会接近或达到1万上限就会导致GDI绘图出现异常导致程序发生闪退。
现在的商业软件基本都不再使用MFC了但有个行业除外。
很多炒股类软件的客户端比如大智慧客户端软件还在用MFC库炒股软件的界面主要来显示股票数据对界面的美化效果没有大的要求使用MFC库做一些基本的美化即可。
duilib库是基于directui思想实现的UI界面库相对于MFC要灵活、好用很多可以较容易地去实现一些酷炫的界面效果。
很多知名的公司都在使用该库比如ZOOM视频会议客户端、PC版微信、爱奇艺PPS客户端、京东咚咚客户端、百度网盘客户端、酷我音乐、酷狗音乐、华为PC版手机助手等。
有些中小型公司也在使用该界面库比如2345公司的好压等产品。
很多公司在开源的duilib库的基础上根据产品和项目的需要对duilib库进行了大量的改进和优化并增加了一些新功能。
网易和腾讯都开源了各自基于duilib改进而来的界面库原生的duilib我们使用过但腾讯和网易的开源版本没有研究过不知道效果如何不知道相对于原生的duilib都做了哪些改进。
回头有时间的时候可以去研究一下。
QT是一套支持跨平台的界面库既支持Windows平台也支持Linux平台甚至支持移动平台。
如果要开发Linux系统中的客户端软件则需要使用QT界面库。
随着国产化系统的推行与普及很多软件既要支持在Windows上运行也要支持在国产化Linux桌面系统上运行。
有些厂商为了实现对Windows和Linux双平台的支持直接选择使用QT界面库开发客户端软件而不再选择Windows用Windows专用界面库开发、Linux用QT开发的方式。
比如视频监控大型厂商海康威视和浙江大华他们的视频监控客户端软件都是直接采用QT界面库开发的。
很多做人工智能的公司都选择QT进行应用软件的开发。
近年来在国产化大潮的推动下QT的支持者和使用者越来越多QT开发也变得越来越火招聘市场上对QT开发人员的需求也越来越大很多大公司的软件也在选择使用QT开发。
QT当前的火爆场面在几年前是不曾有过的。
程序发布https://blog.csdn.net/chenlycly/article/details/134769283
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
Window和Chrome_RenderWidgetHostHWND字符串
Electron是一个由OpenJS基金会和活跃的贡献者社区维护的开源项目。
Electron
构建跨平台桌面应用程序的框架被Atom编辑器和许多其他应用程序使用。
Electron
QQ今年发布基于全新的跨平台解决方案QQNT架构该架构主要采用了Electron
技术QQ首次实现了Window、macOS、Linux多个系统平台之间QQ架构的统一
三端架构的统一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框架确实一般的公司很难驾驭的腾讯应该做了深度优化和改进特别是资源占用方面
3支持SMTP/HTTP/HTTPS等多协议网络传输开源库libcurl库使用SMTP协议发送邮件、使用HTTP/HTTPS发起HTTP请求。
4处理文件压缩与解压缩的zip.cpp和unzip.cpp支持文件的压缩与解压。
8实现websocket通信的libwebsockets库客户端与服务器之间进行websoket通信。
10多媒体处理开源库FFmpeg包含音视频采集与编码、音视频解码、视频格式转换、视频抓图、给视频加水印等功能。
11实时音视频处理开源库WebRTC包含音视频采集、编码、网络传输解码显示等。
12Chromium嵌入式框架开源库CEF嵌入浏览器控件。
14数据实时压缩解压库zlib对字节流数据进行实时的压缩与解压缩。
15异常捕获库CrashRpt/CrashPad捕获软件运行过程中的异常。
16开源操作系统ReactOS查看系统源码可作为Windows系统代码实现的参考有时能可以通过查看系统函数的实现去辅助解决问题。
对于代码查看编辑工具除了重量级的IDE开发工具之外还可以使用微软的VSCode和Source
Insight。
此外在日常工作中推荐大家使用Notepad和Everything这两个轻量级的实用工具使用起来非常方便、高效。
Code简称VSCode是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于
之上的针对于编写现代Web和云应用的跨平台代码编辑器。
它具有对JavaScriptTypeScript和Node.js的内置支持并具有丰富的其他语言例如CCJavaPythonPHPGo和运行时例如.NET和Unity扩展的生态系统。
该编辑器也集成了所有一款现代编辑器所应该具备的特性包括语法高亮syntax
周期所需的功能结合在一起。
它提供了全面的代码编辑、导航和理解支持、以及轻量级调试丰富的可扩展性模型以及与现有工具的轻量级集成。
此外微软在大力推广VS
Code其更新的频率很快每月更新一次其中包含新功能和错误修复。
Code只是个代码查看和编辑工具本身不提供编译器没法对代码进行编译。
如果要编译代码则需要安装相关的插件。
Insight是一个面向项目开发的轻量级程序编辑器和代码浏览器它拥有内置的对C/C、C#和Java等程序的分析。
能分析代码并在工作的同时动态维护它自己的符号数据库并自动显示有用的上下文信息。
Source
Insight提供了最快速的对代码的导航和任何程序编辑器的源信息。
Insight是个小巧轻便的工具可以快速启动实用过程中占用很少的资源CPU和内存资源可以快速地浏览和编辑代码和大型臃肿的IDE软件相比这些都是很大的优势。
作为一个编辑器是没有编译代码的功能的。
Insight比如大型开源项目WebRtc和Chromium。
这些大型代码的大小就占到了数个GB以上且很多这种大型的开源库都是通过交叉编译工具编译的并没有提供Visual
Insight创建一个工程将开源代码的根目录指定到工程中即可。
Insight查看编辑代码https://blog.csdn.net/chenlycly/article/details/124347857
Notepad是程序员必备的文本编辑器该软件软件功能非常强大界面简洁明晰、操作方便快捷设计得很人性化。
Notepad支持C、C、Java、C#、XML、HTML、PHP、JS等27种编程语言。
该工具比Windows系统自带的记事本Notepad.exe要强大太多可完美地取代Windows系统的记事本。
可以使用Notepad查看代码它支持语法高亮显示。
Notepad支持多标签页可以同时打开多个文件。
我们经常使用Notepad查看日志文件支持在文件中搜索可以对匹配到的关键字的次数进行计数并将搜到的记录显示出来可以切换查看这对查看软件运行日志非常方便。
还可以使用Notepad记录文本内容该工具启动快使用便捷这是其一大优势。
这是我们日常开发工作中用的最多的软件之一。
Everything是voidtools开发的一款文件搜索工具它体积小巧启动迅速界面简洁易用。
搜索文件时快速建立索引快速搜索同时占用极低的系统资源还能实时跟踪文件变化。
其搜索速度比Windows自带的搜索要快得多。
使用该工具在搜索磁盘上的文件或文档时不是一般的好用搜索速度真的非常快强烈推荐大家使用。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback