自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(712)
  • 资源 (15)
  • 收藏
  • 关注

原创 c/c++字节对齐

在 相同的对齐方式下 ,结构体内部数据 定义的顺序不同 ,结构体整体占据内存空间也 不同 ,如下: 设结构体如下定义: struct A {      int      a;      char    b;      short c; }; 结构体A中包含了4字节长度的int一个,1字节长度的char一个和2字节长度的short型数据一个。所以A用到的空间应该是7字

2012-09-07 11:30:52 1237 1

原创 C/C++ struct位结构(位域)

从问题开始#includevoid main(){union{struct{unsigned short s1:3;unsigned short s2:3;unsigned short s3:3;}x;char c;}v;v.c=100;printf("%d/n",v.x.s3);}A:4 B:0 C:3 D:6答案是

2012-09-07 10:24:21 1572

原创 c99之 柔性数组成员

在讲述柔性数组成员之前,首先要介绍一下不完整类型(incomplete type)。不完整类型是这样一种类型,它缺乏足够的信息例如长度去描述一个完整的对象。6.2.5 Typesincomplete types (types that describe objects but lack information needed to determine their sizes). C与

2012-09-07 10:13:14 959

原创 Windows共享内存 C++及C#实现

FileMapping用于将存在于磁盘的文件放进一个进程的虚拟地址空间,并在该进程的虚拟地址空间中产生一个区域用于“存放”该文件,这个空间就叫做File View,系统并同时产生一个File Mapping Object(存放于物理内存中)用于维持这种映射关系,这样当多个进程需要读写那个文件的数据时,它们的File View其实对应的都是同一个File  Mapping  Object,这样做

2012-09-07 08:47:06 5577

原创 (*)使用Boost.Asio编写通信程序

http://cpp.ezbty.org/content/science_doc/%E4%BD%BF%E7%94%A8boostasio%E7%BC%96%E5%86%99%E9%80%9A%E4%BF%A1%E7%A8%8B%E5%BA%8F使用Boost.Asio编写通信程序由 lgb 于 星期日, 2010/07/25 - 18:02 发表asioboost同步异步网

2012-09-06 16:22:41 1724

原创 一则简单的Windows共享内存IPC代码

Windows共享内存可以让两个进程对同一块内存进行读写。以下有2个进程,a.cpp生成A进程,b.cpp生成b进程。那么a进程将不停地读名为"Global\\MyFileMappingObject"的共享内存块,而b进程不停地写名为"Global\\MyFileMappingObject"的共享内存块。从而实现IPC。 //a.cpp#include #inclu

2012-09-06 14:03:29 909

原创 OO设计原则总结

什么是设计原则? 设计原则是基本的工具,应用这些规则可以使你的代码更加灵活、更容易维护,更容易扩展。基本原则 封装变化Encapsulate what varies. 面向接口编程而非实现 Code to an interface rather than to an implementation. 优先使用组合而非继承 Favor Composition Over In

2012-08-30 09:21:35 799

原创 单一职责原则

引言 一个优良的系统设计,强调模块间保持低耦合、高内聚的关系,在面向对象设计中这条规则同样适用,所以面向对象的第一个设计原则就是:单一职责原则(SRP,Single Responsibility Principle)。定义单一职责原则(Single Responsibility Principle, SRP):一个类,最好只做一件事,只有一个引起它变化的原因。理解理解S

2012-08-30 09:18:06 886

原创 win32API之InterlockedExchangeAdd

InterlockedExchangeAdd()函数是解决互斥的一个简单方法,与信号量,互斥作用相当。原型如下:[cpp] view plaincopyprint?LONG InterlockedExchangeAdd(PLONG Addend, LONG Value);  LONG InterlockedExchangeAdd(PLONG Addend

2012-08-13 18:15:41 7285

原创 《Windows核心编程》---Interlocked原子访问系列函数 .

转自:http://blog.csdn.net/ace1985/article/details/5729912所谓原子访问,指的是一个线程在访问某个资源的同时能够保证没有其他线程会在同一时刻访问同一资源。Interlocked系列函数提供了这样的操作。所有这些函数会以原子方式来操控一个值。Interlocked函数的工作原理取决于代码运行的CPU平台,如果是x86系列CPU,那么Inter

2012-08-13 18:02:32 1514

原创 IOCP加Windows线程池打造高伸缩性高性能的服务器应用

对于IOCP,搞Windows服务器编程的都不会陌生,它所表现出来的性能是其他各种WinSock模型难望其项背的。撰写本文的目的就是为让大家能够在深入理解IOCP的基础上,再来深入的挖掘Windows系统的性能。此处假设读者对IOCP模型已经深刻理解,并对Windows线程、线程池有一定的了解。如果对此还不熟悉,限于篇幅的原因,请您先学习理解这些内容后再来阅读本文。       在IOCP模型

2012-08-13 10:10:54 6877 1

原创 IOCP之accept、AcceptEx、WSAAccept的区别 .

1. accept、WSAAccept是同步操作,AcceptEx是异步操作2. WSAAccept函数早accept函数基础上添加了条件函数判断是否接受客户端连接3. AcceptEx是异步的,可以同时发出多个AcceptEx请求,支持重叠IO操作.

2012-08-13 08:56:32 10278

原创 仿函数

http://blog.csdn.net/armman/archive/2007/03/18/1532645.aspx仿函数,又叫做函数对象,是一个重载了"()"运算符的struct,是STL(标准模板库)六大组件(容器、配置器、迭代器、算法、配接器、仿函数)之一;仿函数虽然小,但却极大的拓展了算法的功能,几乎所有的算法都有仿函数版本。例如,查找算法find_if就是对find算法的扩展,

2012-08-06 15:36:03 2442

原创 winform 启用控制台

/**////         /// 启动控制台        ///         ///         [DllImport("kernel32.dll")]        public static extern bool AllocConsole();        /**////         /// 释放控制台        ///

2012-08-05 22:42:58 946

原创 服务器开发

作者:司强发布者:司强发布日期:2008/07/22    对于开发一款高性能服务器程序,广大服务器开发人员在一直为之奋斗和努力.其中一个影响服务器的重要瓶颈就是服务器的网络处理模块.如果一款服务器程序不能及时的处理用户的数据.则服务器的上层业务逻辑再高效也是徒劳.所以一个服务器程序的网络处理能力直接影响到整个服务器的性能, 本文主要介绍在windows平台下开发高性能的网络处理模

2012-08-05 22:42:12 1315

原创 集群式游戏服务器架构方案设计开发

自从2003年开发VOIP Radius Server以及修改Gnugk以来,从事服务器开发已经近五年了,对服务器开发也有一些自己独到的看法以及见解。当摆脱了技术本身的束缚之后,才理解重要的并不是某种技术的运用,而是整体设计的考虑,也慢慢明白了设计是开发的灵魂的道理。从技术层面来看,各个平台都有一些自己特有的东西,比如Windows 平台下面的IOCP技术,可以说为了支持大的并发,IOCP

2012-08-05 22:38:56 1333 1

原创 VC工程中MBCS定义的含义

VC工程中的缺省定义是MBCS,当然也可以定义为UNICODE。我们知道前者是“多字节编码”,后者是“UNICODE编码”,后者好理解,因为UNICODE就特指UTF-16,可是多字节编码有太多种了,比如UTF-8、GB2312、Big5等等,那么前者具体指的是哪一种编码呢?具体说来,如果我们声明一个CString str="abc移动";或者说我们使用GetWindowText从一个控件

2012-07-25 14:59:03 1831

原创 stdafx介绍

简介  名称的英文全称为:Standard Application Framework Extensions  所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。  预编译头文件通过编译stdafx

2012-07-25 08:46:31 1221

原创 STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)(转)

SDAU-ACM耀哥整理的,感觉很不错,弄过来慢慢看    原文链接:http://blog.csdn.net/lmyclever/article/details/6750041 向量(vector) 连续存储的元素Vectorc;c.back()    传回最后一个数据,不检查这个数据是否存在。c.clear()     移除容器中所有数据。c.empty()

2012-07-22 17:55:28 965

原创 百万用户级游戏服务器架构设计(2)

登录服的设计 -- 功能需求   正如我们在前面曾讨论过的,登录服要实现的功能相当简单,就是帐号验证。为了便于描述,我们暂不引入那些讨论过的优化手段,先以最简单的方式实现,另外也将基本以mangos的代码作为参考来进行描述。  想象一下帐号验证的实现方法,最容易的那就是把用户输入的明文用帐号和密码直接发给登录服,服务器根据帐号从数据库中取出密码,与用户输入的密码相比较。   这个方

2012-07-22 16:06:32 1869

原创 百万用户级游戏服务器架构设计(1)

服务器结构探讨 -- 最简单的结构   所谓服务器结构,也就是如何将服务器各部分合理地安排,以实现最初的功能需求。所以,结构本无所谓正确与错误;当然,优秀的结构更有助于系统的搭建,对系统的可扩展性及可维护性也有更大的帮助。  好的结构不是一蹴而就的,而且每个设计者心中的那把尺都不相同,所以这个优秀结构的定义也就没有定论。在这里,我们不打算对现有游戏结构做评价,而是试着从头开始搭建一个我

2012-07-22 16:05:15 2927

原创 boost::pool与内存池技术

建议看这个链接的内容:http://cpp.winxgui.com/cn:mempool-example-boost-pool    Pool分配是一种分配内存方法,用于快速分配同样大小的内存块,    尤其是反复分配/释放同样大小的内存块的情况。1. pool    快速分配小块内存,如果pool无法提供小块内存给用户,返回0。    Example:

2012-07-22 15:55:59 1423

原创 内存池(MemPool)技术详解

概述内存池(MemPool)技术备受推崇。我用google搜索了下,没有找到比较详细的原理性的文章,故此补充一个。另外,补充了boost::pool组件与经典MemPool的差异。同时也描述了MemPool在sgi-stl/stlport中的运用。经典的内存池技术经典的内存池(MemPool)技术,是一种用于分配大量大小相同的小对象的技术。通过该技术可以极大加快内存分配/释放过程。下面

2012-07-22 15:44:29 1639

原创 SGI-STL学习笔记之allocator .

转自:http://blog.csdn.net/xinhanggebuguake/article/details/6225563空间配置器的标准接口:[c-sharp] view plaincopyprint?allocator::value_type    allocator::pointer    allocator::const_pointer    al

2012-07-20 14:32:55 1188

原创 SGI STL空间配置器和内存池

最近在看侯捷老师的《STL源码剖析》,非常感叹其中空间配置器实现的巧妙和细致,对效率真正是锱铢必较。  一般我们所习惯的内存配置和释放是通过new和delete来完成的,而new运算包含了两个阶段:1.调用::operator new配置内存 2.调用构造函数 Foo() 构造对象。delete运算也包含两个阶段:1.调用析构函数 ~Foo() 将对象析构 2.调用::operator del

2012-07-20 14:00:12 1092 1

原创 SGI STL空间配置器(STL源码剖析)

空间配置器的标准接口(根据STL规范) allocator::value_typeallocator::pointerallocator::const_pointerallocator::referenceallocator::const_referenceallocator::size_typeallocator::difference_typealloc

2012-07-20 13:40:30 950

原创 SGI STL V3.2 源码剖析 - 空间配置器

1.1.              文件名bits/stl_alloc.h1.2.              背景知识候捷在《STL源代码剖析》中说:“源码之前,了无秘密”,自然是大师的潇洒之语。但是,如果你不熟悉C++ template的基本语法,不明白Generic Programming的基本概念,那么即便STL的源码当前,对你来讲仍会有很多秘密。所以,先简要介绍一些必要

2012-07-20 13:36:15 1235

原创 在 vs2008 里使用 SGI STL 的内存池特性

最近开发的一个C++项目是针对性能进行优化的,所以在很多细节上不得不"咬文嚼字", 而/C++其中强大的地方是对内存使用有很强的可控性, 而任何一个C++项目都离不开对内存的管理,所以要进行内存管理的优化内存池是必须要考虑的.内存池的做法理论在网上很容易找到,但却真正可靠高效的实现,还真是凤毛麟角,也许你会说ACE,boost之类的现成实现,然而这些大家伙动辄就得找半天资料才能编译通过,而

2012-07-20 11:25:53 2167 2

原创 SGI STL 内存池(转)

将SGI STL的内存池抠了出来,win32平台// mem_pool.h#ifndef mem_pool_h#define mem_pool_h#pragma once#define ALIGN     512#define MAX_BLOCK_SIZE   20 * 1024#define BLOCK_LIST_NUM   MAX_BLOCK_SIZE

2012-07-20 11:20:15 1649

原创 SGI STL的内存池

stl中各种容器都有一个可选的模板参数:allocator,也就是一个负责内存分配的组件。STL标准规定的allcator被定义在memory文件中。STL标准规定的allocator只是单纯地封装operator new,效率上有点过意不去。SGI实现的STL里,所有的容器都使用SGI自己定义的allocator。这个allocator实现了一个small object的内存池。Loki

2012-07-20 11:18:03 1253

原创 NTSD(Command Line)调试DMP格式文件

前言:之前介绍了利用VS2005进行Dump文件的调试,功能非常强大。但VS2005是一个大程序,本文将讨论利用NTSD的Command Line 实现Dump 文件的调试。1、  载入DMP格式文件利用CMD打开命令行窗口,切换到NTSD所在目录。利用命令载入DMP文件:ntsd –z dumpfileName –y symbolPath –srcpath sourcecodePat

2012-07-18 11:44:36 970

原创 Windbg培训笔记之一(基础篇)

Windbg培训笔记一(基础篇)主讲人:Nick XiaoWindbg简介Windbg是微软 提供的应用程序,可以在微软的官方网站上下载到。Windbg 提供了用户态和核心态的调试能力。为什么要用WindbgVC6和VS2008都提供了Debug的功能,那为什么我们还需要用Windbg这个工具呢?简单来说,假如你的程序在客户那里出现了问题,比如说crash或者han

2012-07-18 11:36:25 1915

原创 C++编码中减少内存缺陷的方法和工具

转自:http://www.vckbase.com/index.php/wv/1518C++语言是桌面系统,尤其是系统软件、大型应用软件的主流开发语言。C++语言以其灵活性著称,同时也更复杂。利用C++编写健壮的代码,更具有挑战性。C++允许动态内存管理, 同时也容易导致更多和内存相关的问题。一般而言, 除了系统设计上的缺陷, 基于C++的软件的缺陷和错误大部分都和内存缺陷(主要包括内存访问错

2012-07-18 11:11:14 1176

原创 WinDbg调试DMP格式文件

前言:WinDbg是微软开发的免费源代码级的调试工具。WinDbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。本文的讨论是在安装了Debugging Tools for Windows 的前提下进行的,下载地址可以参考我之前的文章。WinDbg对于dump文件的调试可以通过菜单设置Symbol File Path、Source File Path ,并可设置多个路径。1

2012-07-18 10:48:59 1576

原创 DMP文件的生成和使用

#include stdio.h>#include afxwin.h>#include dbghelp.h>#pragma comment(lib, "Dbghelp.lib")LONG WINAPI MyUnhandledFilter(struct _EXCEPTION_POINTERS *lpExceptionInfo){    LONG ret = EXC

2012-07-18 10:46:20 1525

原创 BoundsChecker使用

转载:http://www.cnitblog.com/qiuyangzh/archive/2005/07/14/975.html1 前言我在本文中详细介绍了测试工具NuMega Devpartner(以下简称NuMega)的使用方法。NuMega是一个动态测试工具,主要应用于白盒测试。该工具的特点是学习简单、使用方便、功能有效。NuMega共有三个独立的子功能——BoundsCheck

2012-07-18 10:29:39 790

原创 深入分析MFC中的CArray类

我们在使用vc进行比较复杂的编程时,经常需要用到复杂的数组结构,并希望能实现动态管理。由于C++并不支持动态数组,MFC提供了一个CArray类来实现动态数组的功能。有效的使用CArray类,可以提高程序的效率。MFC提供了一套模板库,来实现一些比较常见的数据结构如Array,List,Map。CArray即为其中的一个,用来实现动态数组的功能。CArray是从CObject派生,有两个模

2012-07-16 18:39:27 1602

原创 也谈Release版本排错

邓立波 深圳,2008-6作者联系方式:email:    [email protected]:     [email protected]  通常Release除错都是先通过SetUnhandledExceptionFilter捕获异常,然后生成报告文件,最后定位代码行,主要以下两种方法:(一)通过遍历调用栈,将其

2012-07-16 18:25:47 932

原创 字符集编码(GBK,BIG5,UNICODE等)与C++的string/wstring

GBK,BIG5等字符集编码范围的具体说明 一 预备知识1,字符:字符是抽象的最小文本单位。它没有固定的形状(可能是一个字形),而且没有值。“A”是一个字符,“€”(德国、法国和许多其他欧洲国家通用货币的标志)也是一个字符。“中”“国”这是两个汉字字符。字符仅仅代表一个符号,没有任何实际值的意义。2,字符集:字符集是字符的集合。例如,汉字字符是中国人最先发明的字符,在中文、日文、韩文

2012-07-11 21:56:44 3602

原创 UTF-8编码简介

在IE中选择UTF-8字符集UTF-8是UNICODE的一种变长字符编码又称万国码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。基本简介  数据结构简要  作者: Marius Bancila  字符集简史  在所有字符集中,最知名的可能要数被称为ASCII的7位字符集

2012-07-11 21:53:39 1716

exe4j(64bit)5.1

exe4j是集成Java应用程序到Windows操作环境的java可执行文件生成工具。

2018-08-06

TexturePacker-3.1.2 for mac 破解版

TexturePacker-3.1.2 for mac 破解版,放心使用

2015-12-14

自动缩放窗体上的内容

这是一个自动缩放窗体的VC6。0的实例,欢迎下载。

2011-11-23

彗星小助手

您是一个程序员?那彗星小助手肯定对您有用,它是一款程序开发、制作软件必备工具,用来分析窗口SPY,探测、操作外部窗口的一个小东东。 彗星小助手是基于Win32的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。使用窗口SPY可以执行下列操作: 显示系统对象(包括进程、线程和窗口)之间关系的图形树。 搜索指定的窗口、线程、进程或消息…网页SPY,探测资源、解除限制网页 在线分析和修改器,它可以分析Microsoft Internet Explorer或是嵌套在应用程序中的浏览器窗口中正在浏览的网页内容,在保持连线状态下实时地修改它。通过使用网页SPY,你可以针对网页内每一个元素做修改,修改Cookie、运行脚本…超级搜索,开发手册随时查 海量WIN32常量、API数据查询,集成桌面搜索以及Google、Bing、Baidu等WEB搜索引擎,快速查找各类开发手册图象操作,开发素材随心找 图标提取可以将文件中的集成的图标资源提取出来并提供修改保存,它能从应用程序,动态链接库、动画文件和图标库文件中提取图标。 图标替换可以将现有应用程序的图标替换为指定的图标。

2011-11-15

HttpWatchPro

HttpWatch是一款强大的网页数据分析工具。集成在Internet Explorer工具栏。包括网页摘要。Cookies管理。缓存管理。消息头发送/接受。字符查询。POST 数据和目录管理功能。报告输出。超好用,正在使用。

2011-11-10

计算机基础知识考试宝典

计算机基础知识考试宝典,这里面共计700多页,数千道计算机考题,之所以称之为宝典,是因为这就是一个题。许多考试都是在这里抽取题目的,而且还有标准答案。一个朋友考试,我帮他答题,结果发现这里面全有,搜索一下即可。希望能给大家帮助!

2011-09-22

综合人事管理系统(VC + SQL Server2000)

学习VC的人看看不错,而且我的分比别人的少一半呢。谢谢捧场!

2009-05-22

appsrv.msc

IIS6.0安装时,常常缺少appsrv.msc文件.这里给大家提供一个.呵呵!

2007-10-23

VC多进程编程

多进程编程,利用VC进行进程编程,里面详细讲解了编程的原理,并且还有代码.

2007-10-19

用vc++编写usb接口通信程序

用vc++编写usb接口通信程序,学习U盘开发的好东东!

2007-10-17

VC串口开发

介绍当今串口开发一切技术,内容详细,是做VC串口开发好教材.

2007-10-16

COM 原理与应用源码

这是<>的源码,忘看好了,再下,否则,白花分,呵呵.不过,还是不错了.

2007-10-16

Vc中BSTR,char和CString的转换

几乎所有的程序都要用到字符串,而Visual C++由于功能强大、应用广泛,因而字符串之间的转换更为频繁,这里介绍多种字符串之间的转换。本文几乎涉及到目前的所有转换方法。当然对于.NET框架来说,还可使用Convert和Text类进行不同数据类型以及字符编码之间的相互转换。

2007-10-12

LinkLabel实例

LinkLabel的使用,这是我VB.NET做的一个小实例.仅初学者参考.

2007-06-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除