`
guaishou
  • 浏览: 167710 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

【★更新★】整理发布本人所有博文中提供的代码与工具(C++)

    博客分类:
  • C++
阅读更多

    (有些内容已更改,重新编辑整理并再次发布,望见谅)

  为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载。


C++

1、《【五一呈献】通用高性能 Windows Socket 组件 HP-Socket v2.1.1 正式发布

    《基于 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 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP 通信系统。HP-Socket 对通信层实现完全封装,上层应用不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到各类应用程序中;另外,为了让大家能更方便的学习 HP-Socket,特此精心制作了一个功能测试示例(Test Echo)和一个性能测试示例(Test Echo-PFM),用户可以通过这两个测试示例入手,迅速掌握组件的设计思想和使用方法。

  资源下载地址:请访问项目主页 ^_*

 

2、《Windows C++ 应用程序通用日志组件(组件及测试程序下载)

  摘要:编写一个通用的日志组件应该着重考虑三个方面:功能、可用性和性能。下面,本座详细说明在设计日志组件时对这些方面问题的考虑:

    • 功能:本日志组件的目的是满足大多数应用程序记录日志的需求 —— 把日志输出到文件或发送到应用程序中,并不提供一些复杂但不常用的功能
    • 可用性:本日志组件着重考虑了可用性,尽量让使用者用起来觉得简便、舒心
    • 性能:性能是组件是否值得使用的硬指标,本组件从设计到编码的过程都尽量考虑到性能优化

  资源下载地址:http://ldcsaa.googlecode.com/files/VC_Logger.zip

 

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://ldcsaa.googlecode.com/files/high_pfm_socket_server_and_client-2.1.1.zip (源代码在 Common/Src 目录中)

 

4、《实现 Win32 程序的消息映射宏(类似 MFC )

  摘要:对于消息映射宏,不用多说了,用过 MFC 的人都很清楚。但目前有不少程序由于各种原因并没有使用 MFC,所以本帖讨论一下如何在 Win32 程序中实现类似MFC的消息映射宏。其实 Windows 的头文件 “WindowsX.h”(注意:不是“Windows.h”) 中提供了一些有用的宏来帮助我们实现消息映射。本座是也基于这个头文件实现消息映射。

  资源下载地址:https://ldcsaa.googlecode.com/files/high_pfm_socket_server_and_client-2.1.1.zip (源代码在 Common/Src/Win32Helper.h 文件中)

 

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

  摘要:Singleton 设计模式应用非常广泛,实现起来也很简单,无非是私有化若干个构造函数,“operator =” 操作符,以及提供一个静态的创建和销毁方法。但是对每个类都写这些雷同的代码是本座不能容忍的,因此,本座使用宏把整个 Singleton 模式封装起来,无论是类的定义还是类的使用的极其简单。

  资源下载地址:https://ldcsaa.googlecode.com/files/high_pfm_socket_server_and_client-2.1.1.zip (源代码在 Common/Src/Singleton.h 文件中)

 

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

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

  资源下载地址:https://ldcsaa.googlecode.com/files/high_pfm_socket_server_and_client-2.1.1.zip (源代码在 Common/Src/PrivateHeap.h 文件中)

 

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

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

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

  资源下载地址:https://ldcsaa.googlecode.com/files/high_pfm_socket_server_and_client-2.1.1.zip (源代码在 Common/Src/debug/win32_crtdbg.h 文件中)


分享到:
评论

相关推荐

    如何在Visual Studio(VS)里使用libsvm工具箱 与博文相关的代码包

    VS2010 使用 libsvm (libsvm 3 18)工具箱的过程 目前互联网搜索数据libsvm工具箱在 VS 中以C++工程呈现的讲解非常稀少而且对初学者有一定的难度 所以在笔者完成工作后写了这篇小记或称为简单教程 呈现给大家 ...

    博文:“C/C++与Matlab混合编程初探”的源代码

    在"HiMat"这个压缩包中,可能包含了用于演示C/C++与Matlab混合编程的源代码。这些代码可能包括了MEX函数的定义,即C/C++函数,它们通过Matlab的API与Matlab环境交互。在编写MEX函数时,开发者需要包含Matlab的头文件...

    CSDN博客导出工具(C++版)

    操作步骤: ...点击文章列表:将显示所有博文,格式:title,href ...遍历博文:将遍历所有博文,每隔3s显示一篇。 停止:是终止遍历博文。 更多信息请看:http://blog.csdn.net/yxstars/article/details/38686487

    基于IDEA调试模式与StopWatch工具类如何优雅实现Java代码执行时间检测统计博文的代码工程

    作为程序员在我们的日常编码过程中经常需要统计一段代码或者一个方法的执行时间,尤其是当以一...这是基于IDEA调试模式与StopWatch工具类如何优雅实现Java代码执行时间检测统计的代码工程资源文件,欢迎大家下载学习。

    代码统计工具 + 截屏工具

    标题中的“代码统计工具 + 截屏工具”指的是在软件开发过程中使用的两种实用工具。代码统计工具用于分析和量化编程工作,例如计算代码行数、注释比例等,以评估项目规模、进度或代码质量。截屏工具则帮助用户快速...

    8数码问题的c++代码

    参见我的博文:http://blog.csdn.net/j56754gefge/article/details/47170967 这是8数码问题的一套完整解决方案,包括问题模型、搜索方法、界面表示等。有问题请给我发邮件,代码里面有我mail

    cocos2d-x中c++11新特性

    ### Cocos2d-x中C++11新特性详解 #### 一、C++11简介 C++11标准,最初被称为C++0x,是C++语言的一个重大更新,旨在提高语言的易用性和现代性。C++11不仅引入了大量新功能,还对现有的标准库进行了扩展和完善,尤其...

    新浪博文下载工具1.1

    值得注意的是,尽管新浪博文下载工具1.1提供了一种便利的服务,但在使用过程中应尊重原作者的权益,不要用于非法或商业目的,避免侵犯他人的知识产权。合法合规地使用网络资源,是我们每个网络公民的责任。 总的来...

    C++单元测试、压力测试、快速测试工具

    这篇博文“C++单元测试、压力测试、快速测试工具”显然关注的是如何有效地对C++代码进行验证和性能评估。让我们深入探讨这些测试方法及其相关工具。 单元测试是对软件的最小可测试单元,如函数、方法或类进行的独立...

Global site tag (gtag.js) - Google Analytics