C++内存池实现

本文从实际需求出发,介绍了内存池的实现原理,并且提供了具体的实现方案。 一、为什么需要使用内存池在 C/C++ 中我们通常使用 malloc、free或new、delete 来动态分配内存。一方面,因为这些函数涉及到了系统调用,所以频繁的调用必然会导致程序性能的损耗; 另一方面,频繁的分配和释放小块内存会导致大量的内存碎片的产生,当碎片积累到一定的量之后,将无法分配到连续的内存空间,系统不得不进行碎片整理来满足分配到连续的空间,这样不仅会导致系统性能损耗,而且会导致程序对内存的利用率低下。 当然,如果我们的程序不需要频繁的分配和释放小块内存,那就没有使用内存池的必要,直接使用malloc,free或new,delete函数即可。

C++语言

移除Qt控件虚线框

方式一:使用 StyleSheet123QWidget:focus { outline: none; /* 去掉得到焦点时的虚线框 */} 方式二:继承 QProxyStyle继承 QProxyStyle,PrimitiveElement 为 QStyle::PE_FrameFocusRect 时不绘制虚线框,然后在 main() 函数里调用 QApplication::setStyle() 使用新的样式。

Qt

Windbg调试入门

Windbg 是 Microsoft 公司推出的免费的、带 GUI 的调试器,支持 Source 和 Assembly 两种模式的调试。 Windbg 不仅可以调试应用程序,还可以进行系统内核调试,Windbg 支持的平台包括 X86、IA64、AMD64。

软件调试

深入理解C++虚函数

本文主要介绍 C++虚函数的底层实现,虚析构函数的作用,虚函数表的数据结构及存储方式,以及__declspec(novtable)的作用。

C++语言

以管理员权限运行批处理脚本

基本原理: 根据 系统自带的cacls.exe 是否能够访问”%SystemDrive%\System Volume Information”文件,来判断当前批处理进程是否具有管理员权限。 创建 vbs 脚本到临时目录,然后使用该脚本提权执行当前 bat 文件。

Windows批处理

高速文件下载器的实现

我们下载文件时通常会使用浏览器或者迅雷这样的下载工具,这些工具大多具有高速下载(下载速度快)、断点续传(可以暂停之后继续下载)等特性。 现在我们自己开发的应用软件中也需要支持这些特性,我们该如何设计和实现了?本文主要围绕这一问题进行论述,并在文章最后分享了作者自己开发的高速文件下载库。

Power By Me

Windows平台生成Dump文件

转储文件也就是我们常说的 dump 文件,可以把转储文件看成软件的某个时刻的一个快照,我们一般在软件出现问题时手动生成或者程序自动生成转储文件。

Windows编程

一键启动神器之1key.run

1key.run既是产品官网域名(域名没钱续费,官网已嘎),亦是产品名称。 顾名思义,主打一键启动,可以一键启动本地应用、网页搜索,并内置了一些实用功能如日历、科学计算、截图、哈希计算等基础功能。

Power By Me
1101112131423