-
Windows驱动开发笔记
本文记录了我在开发Windows驱动时的一些心得体会。
-
更新svn的externals到指定版本
svn的 externals 功能用于将代码库中其他位置的代码链接到本目录中来。最近我尝试将代码回退到某个历史版本时发现 externals 链接过来的代码并没有回退到历史版本,仍然是库中最新的版本。
-
高斯函数在图像处理中的应用
高斯模糊是一种常见图像模糊算法。本文介绍其算法原理和在图像处理中的操作细节。
-
数据库使用的数据模型
根据数据库所使用的数据模型来划分,数据库可以分为层次数据库、网状数据库、关系数据库。
它们分别对应数据库的三种数据模型:层次模型,网状模型,关系模型。
目前最常用的也就是关系型数据库。 -
面向对象设计中的五大原则
最近在看软考资料,正好遇到了一个与面向对象设计有关的题目,把五大原则拿出来好好复习一下。将五大原则分别是单一职责原则、开闭原则、里式替换换则、接口隔离原则、依赖倒转原则,将它们的英文首字母取出来就能组成单词
SOLID
,这些原则的主要宗旨是使软件维护和软件拓展变得更加容易。 -
在C++中使用有符号数作为容器下标
在C++20中引入了
std::span
特性,针对容器下标和容器大小该使用有符号数signed
还是无符号数unsigned
,大家开始讨论。综合来看,在旧标准的设计中使用无符号数作为容器下标是有历史原因的;但是在后来的使用中也发现了许多弊端。最终,在C++20标准下
std::span
仍然使用了无符号数作为大小和下标类型。但是讨论的过程很有意思,也让我在后续的开发中思考有符号数和无符号数的使用。 -
记录一次TCP异常分析
最近在排查一个TCP异常现象,有很多收获,加深了我对TCP的理解,在这里记录一下。
-
将界面窗口置顶显示
最近需要实现一个功能,在启动第二个程序实例时将主界面窗口置顶显示。界面程序是基于Qt开发的,在Windows操作系统上实现窗口置顶需要一些特殊的处理。
-
Qt连接匿名函数的踩坑记录
今天在调试代码时遇到了一个有趣的问题,值得仔细思考。
-
检查C字符串为空
在C语言中如何检测字符串为空字符串,最近看到twitter上有对此问题讨论,让我学习到了很多新的知识点。
-
删去不需要的windows右键菜单
一些软件会向 windows 右键菜单中增加功能条目,当我们不需要这些功能时可以删掉他们。
-
结构体字节对齐的陷阱
pragma pack
的功能是设定结构体内成员变量的字节对齐方式。它在使用时有一个易错点,而且出错后排查起来还非常不容易。