为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 GitHub 中,有兴趣者可前往下载。
C++
1、《通用高性能 Windows Socket 组件 HP-Socket v3.2.3 正式发布》
《基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现》
《通用异步 Windows Socket TCP 客户端组件的设计与实现》
摘要:编写 Windows Socket TCP 客户端其实并不困难,Windows 提供了6种 I/O 通信模型供大家选择。但本座看过很多客户端程序都把 Socket 通信和业务逻辑混在一起,剪不断理还乱。每个程序都 Copy / Parse 类似的代码再进行修改,实在有点情何以堪。因此本座利用一些闲暇时光写了一个基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件和一个通用异步 Windows Socket TCP 客户端组件供各位看官参详参详,希望能激发下大家的灵感。
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装,应用程序不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧应用程序中。
为了让使用者能方便快速地学习和使用 HP-Socket ,迅速掌握框架的设计思想和使用方法,特此精心制作了大量 Demo 示例(如:PUSH 模型示例、PULL 模型示例、性能测试示例以及其它编程语言示例)。HP-Socket 目前运行在 Windows 平台,将来会实现跨平台支持。
资源下载地址:请访问项目主页 ^_*
2、《Windows C++ 应用程序通用日志组件(组件及测试程序下载)》
摘要:编写一个通用的日志组件应该着重考虑三个方面:功能、可用性和性能。下面,本座详细说明在设计日志组件时对这些方面问题的考虑:
- 功能:本日志组件的目的是满足大多数应用程序记录日志的需求 —— 把日志输出到文件或发送到应用程序中,并不提供一些复杂但不常用的功能
- 可用性:本日志组件着重考虑了可用性,尽量让使用者用起来觉得简便、舒心
- 性能:性能是组件是否值得使用的硬指标,本组件从设计到编码的过程都尽量考虑到性能优化
资源下载地址:请访问项目主页 ^_*
3、《如何养成良好的 C++ 编程习惯(一)—— 内存管理》
摘要:说起 C/C++ 的内存管理似乎令人望而生畏,满屏的 new / delete / malloc / free,OutPut 窗口无尽的 Memory Leak 警告,程序诡异的 0X00000004 指针异常,仿佛回到那一年我们一起哭过的日子,你 Hold 得住吗?其实,现实并没有你想的那么糟糕。只要你付出一点点,花一点点心思,没错!就一点点而已 —— 用 C++ 类封装内存访问,就会解决你大部分的烦恼,让你受益终身。以 Windows 程序为例,主要有以下几种内存管理方式:
- 虚拟内存(Virtual Memory)
- 默认堆和私有堆(Process Heap & Private Heap)
- 内存映射文件(File Mapping)
- 进程堆栈(Heap,其实就是用 malloc() 或 默认的 new 操作符在 Process Heap 里一小块一小块地割肉 ^_^)
- 栈(Stack,内存由调用者或被调用者自动管理)
资源下载地址:https://github.com/ldcsaa/vc-common-src (源代码在 Common/Src 目录中)
4、《实现 Win32 程序的消息映射宏(类似 MFC )》
摘要:对于消息映射宏,不用多说了,用过 MFC 的人都很清楚。但目前有不少程序由于各种原因并没有使用 MFC,所以本帖讨论一下如何在 Win32 程序中实现类似MFC的消息映射宏。其实 Windows 的头文件 “WindowsX.h”(注意:不是“Windows.h”) 中提供了一些有用的宏来帮助我们实现消息映射。本座是也基于这个头文件实现消息映射。
资源下载地址:https://github.com/ldcsaa/vc-common-src(源代码在 Common/Src/Win32Helper.h 文件中)
摘要:Singleton 设计模式应用非常广泛,实现起来也很简单,无非是私有化若干个构造函数,“operator =” 操作符,以及提供一个静态的创建和销毁方法。但是对每个类都写这些雷同的代码是本座不能容忍的,因此,本座使用宏把整个 Singleton 模式封装起来,无论是类的定义还是类的使用的极其简单。
资源下载地址:https://github.com/ldcsaa/vc-common-src (源代码在 Common/Src/Singleton.h 文件中)
摘要:Private Heap 是 Windows 提供的一种内存内存机制,对于那些需要频繁分配和释放动态内存的应用程序来说,Private Heap 是提高应用程序性能的一大法宝,使用它能降低 new / malloc 的调用排队竞争以及内存空洞。
资源下载地址:https://github.com/ldcsaa/vc-common-src (源代码在 Common/Src/PrivateHeap.h 文件中)
7、《基于 crt debug 实现的 Windows 程序内存泄漏检测工具》
摘要:Windows 程序内存泄漏检测是一项十分重要的工作,基于 GUI 的应用程序通常在调试结束时也有内存泄漏报告,但这个报告的信息不全面,不能定位到产生泄漏的具体行号。其实自己实现一个内存泄漏检测工具是一件非常简单的事情,但看过网上写的很多例子,普遍存在两种问题:
- 要么考虑不周全,一种环境下能用,而在另外一种环境下却不能很好工作,或者漏洞报告的输出方式不合理。
- 要么过于保守,例如:完全没有必要在 _malloc_dbg() 和 _free_dbg() 的调用前后用 CriticalSection 进行保护(跟踪一下多线程环境下 new 和 malloc 的代码就会明白)。
资源下载地址:https://github.com/ldcsaa/vc-common-src(源代码 Common/Src/debug/win32_crtdbg.h 文件中)
相关推荐
测试环境和效果演示参考博文:https://blog.csdn.net/FL1623863129/article/details/141141238
算法、数据结构、面试挺好的文档。 结构之法算法之道blog所有博文集锦by_July_截止到2014.12.9.chm
EasyX是一个针对初学者的图形库,主要用于简化C++编程中的图形绘制操作。这个"EasyX--2014冬至版(博文配套资料).zip"文件包含了使用EasyX库进行开发所需的必要资源,包括帮助文档、头文件和库文件。 首先,`EasyX...
资源说明: 1---开启端口后可以读取串码1. 串码2. SN .BT.wifi参数 ...3----工具的前提是开启端口 4----需要动手能力较强的友友操作 5---资源本人实测小米 6 6x 5X等机型完美 改写相关可以参考博文: ...
标题中的"[JWFD开源工作流]"指的是一个名为JWFD的开源工作流管理系统,而"JWFD 2014.5.23 最新动态[下载升级补丁]"则表明这是一个针对该系统2014年5月23日的更新,可能包含了修复、增强或新功能的补丁。这种更新对于...
更新于:2022-09-24 注意事项:各位下载用户,麻烦看清楚,安装目录有个"注册.bat",右键管理员权限运行一下。 此工具根据博文https://sunkingyang.blog.csdn.net/article/details/116157222介绍,更新客户端窗口...
资源是笔者在MATLAB里面安装的MinGW-w64 C/C++编译器安装包,主要用于作为博文https://blog.csdn.net/jiqiren_dasheng/article/details/103759720的资源附件。(声明:上传时积分设置的1,如果数值后续变了,就是...
包含全部RDP Wrap(1.6.2)安装所用资源(截至2020.3.7),具体使用方法见本人博文,这里不仅仅有GitHub原网站(https://github.com/stascorp/rdpwrap/)1.6.2的文件,还有到2020.3.7最新的rdpwrap.ini,比GitHub下载...
此工具根据博文https://sunkingyang.blog.csdn.net/article/details/116157222介绍,更新客户端窗口自适应分辨率。工具拥有国标级联功能,支持客户端和服务端两种模式,分别支持国标实时视频播放、停止,历史视频...
【测试环境】 vs2019 opencv==4.8.0 更多信息参考博文:https://blog.csdn.net/FL1623863129/article/details/141147282
vue DES加密解密工具类 des.js,与博文中的匹配,为封装好的完整工具类
测试环境和效果演示参考博文:https://blog.csdn.net/FL1623863129/article/details/141147243
达梦数据库驱动文件 使用参考博文链接: https://blog.csdn.net/qq_45363655/article/details/135456705?spm=1001.2014.3001.5502
本人博文 https://blog.csdn.net/hrcsdn13/article/details/141260457?spm=1001.2014.3001.5502 使用图片
测试环境和效果展示参考博文:https://blog.csdn.net/FL1623863129/article/details/141140769
标题中的“将jar包转成.java的源码的工具”是指一种可以反编译Java字节码(.class文件)并将其转换为源代码(.java文件)的软件工具。在Java开发中,有时我们需要查看或理解已编译的jar包内部的工作原理,这种工具就...
卜恪 - The Unified C++ Executors 设计与演化的简史.pdf 陈子文 透视交易:一次技术故障的系统级分析.pdf 动态库,是得多动态?- 袁秩昊.pdf 付博文 - C++模式匹配初探.pdf 贾跃华 - template adl puzzler.pdf 祁宇...
VSCode C/C++ Clang自定义样式文件.clang-format。 基于Google样式,根据自己的习惯修改。 见博文:https://blog.csdn.net/hxiaohai/article/details/100705224
QT C++ WebSocket网络通信调试工具V1.1增强版,多线程,服务端+客户端二合一,博文地址https://blog.csdn.net/wwplh5520370/article/details/118360069。 1、如有bug,敬请谅解,欢迎在评论区留言,博主会及时修复。...
Microsoft.Office.Interop.Word.dll Microsoft.Office.Interop.Excel.dll 二合一 详细代码请看博文:http://blog.csdn.net/panfuy/article/details/6386590