为了更容易地管理各种规范和工具所涉及的资源鲍文,现在把这些资源迁移 GitHub 在,趣者可前往下载。


C++

1、《通用高性能 Windows Socket 组件 HP-Socket v3.2.3 正式公布

    《基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现

    《通用异步 Windows Socket TCP client组件的设计与实现

  摘要:编写 Windows Socket TCP client事实上并不困难,Windows 提供了6种 I/O 通信模型供大家选择。但本座看过非常多client程序都把 Socket 通信和业务逻辑混在一起,剪不断理还乱。每一个程序都 Copy / Parse 类似的代码再进行改动,实在有点情何以堪。因此本座利用一些闲暇时光写了一个基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件和一个通用异步 Windows Socket TCP client组件供各位看官參详參详。希望能激发下大家的灵感。

  HP-Socket 是一套通用的高性能 TCP/UDP 通信框架。包括服务端组件、client组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。HP-Socket 对通信层实现全然封装,应用程序不必关注通信层的不论什么细节;HP-Socket 提供基于事件通知模型的 API 接口,能很easy高效地整合到新旧应用程序中。

为了让使用者能方便高速地学习和使用 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 文件里)

5、《用宏实现 C++ Singleton 模式

  摘要:Singleton 设计模式应用非常广泛,实现起来也非常easy。无非是私有化若干个构造函数,“operator =” 操作符。以及提供一个静态的创建和销毁方法。

可是对每一个类都写这些雷同的代码是本座不能容忍的,因此,本座使用宏把整个 Singleton 模式封装起来,不管是类的定义还是类的使用的极其简单。

  资源下载地址:https://github.com/ldcsaa/vc-common-src (源码在 Common/Src/Singleton.h 文件里)

6、《C++ 封装私有堆(Private Heap)

  摘要:Private Heap 是 Windows 提供的一种内存内存机制。对于那些须要频繁分配和释放动态内存的应用程序来说,Private Heap 是提高应用程序性能的一大法宝,使用它能减少 new / malloc 的调用排队竞争以及内存空洞。

  资源下载地址:https://github.com/ldcsaa/vc-common-src (源码在 Common/Src/PrivateHeap.h 文件里)

7、《基于 crt debug 实现的 Windows 程序内存泄漏检測工具

  摘要:Windows 程序内存泄漏检測是一项十分重要的工作,基于 GUI 的应用程序通常在调试结束时也有内存泄漏报告。但这个报告的信息不全面,不能定位到产生泄漏的详细行号。事实上自己实现一个内存泄漏检測工具是一件非常easy的事情。但看过网上写的非常多样例,普遍存在两种问题:

  • 要么考虑不周全。一种环境下能用。而在第二种环境下却不能非常好工作,或者漏洞报告的输出方式不合理。
  • 要么过于保守,比如:全然没有必要在 _malloc_dbg() 和 _free_dbg() 的调用前后用 CriticalSection 进行保护(跟踪一下多线程环境下 new 和 malloc 的代码就会明确)。

  资源下载地址:https://github.com/ldcsaa/vc-common-src(来源 Common/Src/debug/win32_crtdbg.h 文件)


更新代码和工具,组织起来,提供所有博文(C++,2014.09)的更多相关文章

  1. 来试试这个来自静态代码分析工具PVS Studio提供C++的小测验吧

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:来试试这个来自静态代码分析工具PVS Studio提供C++的小测验吧.

  2. 更新整理本人所有博文中提供的代码与工具(Java,2014.01)

    为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. Java 1.<高效 Java Web 应用开发框架 JessMA v3. ...

  3. 更新整理本人所有博文中提供的代码与工具(C++,2014.01)

    为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. C++ 1.<通用高性能 Windows Socket 组件 HP-Soc ...

  4. 更新整理本人所有博文中提供的代码与工具(Java,2013.11)

    为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. Java 1.<高效 Java Web 应用开发框架 JessMA v3. ...

  5. 更新整理本人所有博文中提供的代码与工具(C++,2013.11)

    为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. C++ 1.<通用高性能 Windows Socket 组件 HP-Soc ...

  6. 更新整理本人所有博文中提供的代码与工具(Java,2013.10)

    为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. Java 1.<高效 Java Web 应用开发框架 JessMA v3. ...

  7. 更新整理本人所有博文中提供的代码与工具(C++,2013.10)

    为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. C++ 1.<通用高性能 Windows Socket 组件 HP-Soc ...

  8. 更新整理本人所有博文中提供的代码与工具(Java,2013.08)

    为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. Java 1.<高效 Java Web 应用开发框架 JessMA v3. ...

  9. 更新整理本人所有博文中提供的代码与工具(C++,2013.08)

    为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. C++ 1.<通用高性能 Windows Socket 组件 HP-Soc ...

随机推荐

  1. [Android面试题-7] 写出一个Java的Singleton类(即单例类)

    1.首先明确单例的概念和特点: a>单例类只能有一个实例 b>单例类必须自己创建一个自己的唯一实例 c>单例类必须为其他所有对象提供这个实例 2.单例具有几种模式,最简单的两种分别是 ...

  2. TRIZ系列-创新原理-29-气动或液压结构原理

    气动或液压结构原理的详细表述例如以下:1)用气态或液态部件替代固体部件.能够用空气或者水,也能够用气垫或水垫,使这些部件膨胀.这条原理符合系统的动态性进化法则-柔性化.在改造系统时,我们能够尝试将系统 ...

  3. hdu1028(整数划分问题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1028 整数划分问题 整数划分 --- 一个老生长谈的问题: 描述 整数划分是一个经典的问题.请写一个程 ...

  4. 2014年度辛星解读css第四节

    接下来的这一节我计划解说的是超链接和列表的样式,然后我们做出一个导航栏出来,事实上导航栏是很常见的,可是我们这里做得这个有点并不那么完好,等我们学完了css之后再完好它. ************** ...

  5. web框架之Spring-MVC环境搭建(转)

    spring框架jar包 1.下载spring源包spring地址:http://www.springsource.org/download我下的是spring-framework-3.1.0.REL ...

  6. poj3237(树链剖分)

    题目链接:http://poj.org/problem?id=3237 题目大意:指定一颗树上有3个操作: 1)询问操作,询问a点和b点之间的路径上最长的那条边的长度(即最大值): 2)取反操作,将a ...

  7. hdu3899(树形dp)

    题意:给一树,每个结点有人数,边有权值,表示经过这条边所需时间, 问取某个结点作为开会地点,所有人全部到达此结点最少所需总时间? 分析:val[u]表示以u为根节点的总人数,num[u]表示以u为根节 ...

  8. hdu1159 LCS模板题

    题目分析 pid=1159">原题地址 最简单的最长公共子序列(LCS)问题的模板题了.不解释. ------------------------------------------- ...

  9. c#开发微信公众平台

    之前帮公司开发过微信公众账号,今天特别将过程再回顾记录下来. 1.URL配置 启用开发模式需要先成为开发者,而且编辑模式和开发模式只能选择一个,进入微信公众平台-开发模式,如下: 从上面可以看出,点击 ...

  10. Sql SUBSTR函数

    SUBSTR( ) 从一个字符表达式或备注字段中返回一个字符串.该字符串起始于字符表达式或备注字段的指定位置,到指定数目字符结束. 例如: SUBSTR(“A1”, 1 1]) 结果:A