自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ad33k编程开发

编程开发

  • 博客(43)
  • 资源 (4)
  • 收藏
  • 关注

转载 async_tcp_echo_server.cpp

async_tcp_echo_server.cpp由 easyeagel 于 星期六, 2009/09/19 - 14:16 发表asioboost代码注解//echo服务器是一个非常简单的服务,并且在实际中没有太多用处//但ech

2011-08-22 22:52:27 1158

转载 async_udp_echo_server.cpp

async_udp_echo_server.cpp由 easyeagel 于 星期六, 2009/09/19 - 14:19 发表asioboost代码注解/* * echo server 一种非常简单的服务,它把接收到的数据原封不

2011-08-22 22:51:49 1681

原创 boost::asio库的结构与构成

摘要:本文是对boost::asio库的一个较高层次的介绍,它没有深入或讲解boost::asio的类、函数的使用方法,它介绍boost::asio库构成,这个为我们提供哪些可有的工具。本文对于那些存在零星的boost::asio库使用经验读者来说,可以提高总体对boost::a

2011-08-09 16:32:13 1851

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

使用Boost.Asio编写通信程序由 lgb 于 星期日, 2010/07/25 - 18:02 发表asioboost同步异步网络编程输入输出通信摘要:本文通过形像而活泼的语言简单地介绍了Boost::asio库的使用,

2011-08-08 22:28:28 2549 1

原创 类的成员变量偏移指针和成员函数指针

1、类的成员变量的偏移指针这是个特殊的指针class A{public: int x; int y;};&A::x和&A::y就表示类A的数据成员偏移指针。 int _tmain(int argc, _TCHAR* argv[]){printf("%p\n

2011-07-20 15:57:17 906

原创 Boost::Call_Traits 介绍

先谈谈什么是Traits,BS的解释如下: Think of a trait as a small object whose main purpose is to carry information used by another object or algo

2011-07-06 11:23:51 1976

原创 【解决问题】MemPool中的mAllocatedCount在所有对象销毁后变成了-1

【症状】    销毁程序中所有rp对象后,MemPoolImpl中的mAllocatedCount变成了-1(应该为0)。 【诊断】   应该是多调用了一个MemPoolImpl->freeMemNode(...)函数。allocMemNode()和freeMemNode()是成对调用的。   以为是某个对象在new_rp时为A对象,而使用时作为了B对象。其中B类内部含有某个r

2011-06-25 00:04:00 432

转载 【设计模式】交互图

  交互图展示了对象间各请求的执行顺序。上图就是一个交互图,它描述了一个S h a p e对 象是如何加入到某个D r a w i n g对象中去的。 对象的命名规则与对象图一样,即在类名前加一个“ a”(例如a S h a p e)。  交互图中从上到下表示时间流向。 一条垂直实线表示一个特定对象的生命周期。 如果某对象在本图所示的时间区间开始时还未被创建,则用垂直虚线表示,这条虚线一直延伸到它被创建的时间点。 一个垂直的矩形表示对象在活动,也就是说它正在处理某个请

2011-06-01 15:54:00 626

转载 【设计模式】词汇表

抽象类(abstract class) 一种主要用来定义接口的类。抽象类中的部分或全部操作被延 迟到其子类中实现。抽象类不能实例化。 抽象耦合(abstract coupling) 若类A维护一个指向抽象类B的引用,则称类A抽象耦合 于B。我们之所以称之为抽象耦合乃是因为A指向的是一个对象的类型,而不是一个具体对 象。 抽象操作(abstract operation) 一种声明了型构( s i g n a t u r e)而没有实现的操作。在 C + +中,抽象操作对

2011-06-01 15:24:00 1124

转载 【设计模式】UML关系图示例

UML图例如下: 一、类框表示 第1层:类名。 第2层:属性(即类的字段)。 第3层:操作(类的方法)。+号表示public;-号表示private;#号表示protected。 二、类之间的各种关系 类之间的关系共6种: 继承关系 接口关系 依赖关系 关联关系 聚合关系 组合关系 1、继承关系 用空心三角形+实线表示。   2、实现接口 用空心三角形+虚线表示。 3、依赖关系

2011-06-01 15:11:00 1656

原创 【boost学习笔记】五种Iterator

五种Iterator为: Input Iterator Output Iterator Forward Iterator Bidirectional Iterator Radom Access Iterator 一、Input Iterator 用于只读,并且只能读一次。重复读没有定义。x=*it,不能再次x=*it。例如:istream_iterator。重复读有危险,应该在x=*it之后,立即++it,并且测试it!=end()。例如是否读到了流的末

2011-04-26 17:14:00 940

原创 【boost学习笔记】认识Concept

Concept代表:一组类(也可以是类模板)必须满足的一组条件。 当某个类(Class)满足一组条件(Concept)时,可以说这个类(Class)就是这个Conecpt的一个模型(Model)。 泛型编程中个各个“元素”的关系图: 一个类型可以同时满足几个Concept,例如:正规类型 正规类型是指必须同时满足如下三个Concept:Assignable、Default Constructiable、Equality Comparable。也即: 如果 x=y,则 x==y内建类型i

2011-04-26 14:52:00 536

转载 Boost 线程相关介绍

<br />相关文章:<br />boost::thread简要分析(1):thread<br />http://www.rosoo.net/a/cpp/2009/1204/8082.html<br />boost::thread简要分析(2):线程同步<br />http://www.rosoo.net/a/cpp/2009/1204/8083.html<br />boost::thread简要分析(3):线程局部存储及其它<br />http://www.rosoo.net/a/cpp/2009/120

2010-07-10 11:21:00 1242

原创 Ogre资源组及资源

Ogre资源状态 每一个资源都有四个状态。下图假设了一个资源: 资源状态的说明 资源状态 未知状态Unknown 声明的Declared 已创建Created 已载入L

2010-05-10 23:42:00 761

原创 OgreXMLConver 说明 及 批量处理

.[OgreXMLConveter] OgreXML转换器能够将 .mesh 模型网格文件 和 .skeleton 骨骼文件 由XML格式转换为二进制格式,同时可以将其二进制格式转换回XML格式。它同时也允许你在将XML格式转换为二进制格式时设置LOD层级信息。 如果你的Ogre脚本资源中原本使用的就是XML格式文件的话,那么本工具则是Ogre运行时必须的。所以你能够在OgreSource包的

2010-04-24 22:31:00 890

原创 语法高亮

以下是语法高亮插件 inline CEGUI::MouseButton convertOgreButtonToCegui(int buttonID){ using namespace OIS; switch (buttonID) { case OIS::MB_Left: return CEGUI::LeftButton; case OIS::MB_Right:

2010-04-10 15:29:00 552

原创 CEGUI和OGRE关系图

CEGUI和OGRE关系图:  

2010-04-10 15:01:00 655

原创 五种iterator的类别

任何种类的iterator都至少提供以下功能:1、可取值:*it。x=*it有效,但*it=x无效。2、可向前移动:++it,it++ (在区间(being, end]内,对于原生指针,begin~end之间不能出现NULL)3、相等比较:it1==it2, it1!=it2。4、可复制:it1=it2一、Input Iterator:最基本的,同上。相当于:只能读取但

2010-03-25 21:34:00 883

原创 traits(萃取)和 偏特化

traits主要是用来萃取出某一个类中定义的value_type。 template struct A {     typedef T value_type; }; template struct traits {     typedef typename I::value_type value_type; //此处的typename不可少

2010-03-25 20:40:00 669

原创 typename 一个用法

template struct MyIter typedef T value_type; // 巢狀型別宣告(nested type) T* ptr; MyIter(T* p=0) : ptr(p) { } T& operator*() const { return *ptr; } // ... }; template typename I:

2010-03-25 19:31:00 390

原创 常用C头文件 &lt;c...&gt;

#include // for placement new. #include // for ptrdiff_t, size_t #include // for exit() #include // for UINT_MAX #include // for cerrd00

2010-03-25 18:30:00 449

原创 STL中六大组件的关系

六大组件: 容器(containers):各種資料結構,如 vector, list, deque, set, map,用来存放“元素”。就是template class。 演算法(algorithms):各種常用演算法如 sort, search, copy, erase,就是template class。 迭代器(iterators):是所謂的「泛型指標」,是㆒種將 operator*,

2010-03-23 22:35:00 614

原创 operator++ 的前置、后置 两个 operator*

所有“游标”都至少要实现:operator++和operator* class A { private:     int n; public:     A& operator++() { ++n; return *this;} //++A     A operator++(int) { A t=*this; n++; return t;} //A++;

2010-03-23 21:54:00 963 2

原创 在类声明中,静态(static)常量(const)泛整数型(char, int, DWORD)可以直接初始化

class A{ static const int n = 10; static const char c = a; static const float f = 3.23f;};

2010-03-23 21:02:00 994

原创 类模版的特化

//特化template struct A{ void Foo() { jhdbg_out("T");}};template  //template{ void Foo() { jhdbg_out("char");}};

2010-03-23 20:51:00 364

原创 在类模版中写友元类和友元函数

必须先“声明”类,再声明函数,然后再定义 templateclass T> class A; templateclass T> class B; templateclass T> bool Foo(const A& a, const T& n);templateclass T> class A { friend class B; //不可

2010-03-23 20:09:00 436

原创 Windows消息队列

 节详细描述消息和消息队列以及如何在你程序中使用他们。 关于消息和消息队列与传统的应用程序不同,Microsoft Windows应用程序并不显式地用一个函数的调用(如c运行库)来获取输入,而是,等待windows系统把输入传给它们。 windows系统把应用程序的所有输入传给应用程序的窗口,每个窗口都有一个称之为窗口过程的函数.当窗口有输入时windows系统要调用它,窗口过程处理输

2009-11-03 14:20:00 643

原创 GetQueuedCompletionStatus的返回值

GetQueuedCompletionStatus的返回值2009-06-24 18:52BOOL WINAPI GetQueuedCompletionStatus(__in   HANDLE CompletionPort,__out LPDWORD lpNumberOfBytes,__out PULONG_PTR lpCompletionKey,__out L

2009-09-30 15:17:00 3238

原创 IOCP配合AcceptEX

IOCP配合AcceptEx的例子(1)(2006-7-2 14:33:00)【收藏】 【评论】 【打印】 【关闭】 标签:C++ VC 网络 服务器  在论坛找到的,搬进来备查,呵呵感谢作者的辛苦劳动:)作者:chang290      发表时间:2005-12-17 16:38:00      这是在学《Windows网络

2009-09-24 23:25:00 3487

转载 Winsock开发网络通信程序的经典入门

Winsock开发网络通信程序的经典入门文章来源:http://www.bdqnht.com/ 文章作者:北大青鸟 发布时间:2007-12-18  对于许多初学者来说,网络通信程序的开发,普遍的

2009-09-24 20:15:00 676

转载 staitc_cast、dynamic_cast比较

C 风格(C-style)强制转型如下: (T) exdivssion // cast exdivssion to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(exdivssion) // cast exdivssion to be of type T  这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这

2009-09-19 21:47:00 672

转载 *& 连用,用于返回类型

在某种意义上,"*"和"&"是意思相对的两个东西,把它们放在一起有什么意义呢?。为了理解指针的这种做法,我们先复习一下C/C++编程中无所不在的指针概念。我们都知道MYCLASS*的意思:指向某个对象的指针,此对象的类型为MYCLASS。                   void   func1(MYCLASS   *pMyClass);                         //

2009-09-18 23:55:00 1091

原创 编程笔记

【】使用boost中的shared_ptr 可以把 new 出的对象指针放入 std::vector等容器。对象的基类使用protected的析构函数,可以防止get()出的裸指针被误delete   【】但一个子类私有继承父类时,必须显示调用父类的构造函数,否则父类构造函数将不执行 

2009-09-18 23:25:00 312

转载 编译boost库-用vc2005编译boost1.34.1

编译boost库-用vc2005编译boost1.34.1    编译boost库-用vc2005编译boost1.34.1  //打开控制台窗口,请使用vs2005在开始菜单中的“Visual Studio Tools->Visual Studio 2005 命令提示”打开控制台,这样vc的的编译环境就设置好了。//假设boost安装包的解压的目录为{BOOST_SRC}中。

2009-09-15 16:34:00 568

转载 UDP与TCP比较

以前公司用过TNL,又有RakNet也是UDP的。但是,不知道各个库在吞吐量、CPU占用、内存占用量/性能/碎片等方面的详细数据。 另,UDP相对TCP响应更快?请给出实际数据(分别采用TCP或UDP处理同一问题的测试对比数据,越多越好,谢谢!)。 下面是各家的理论:1:感觉UDP和TCP用在不同的地方,UDP用在像打枪之类的游戏,TCP可能更多用于像网络RPG之类的。            

2009-09-15 11:30:00 3639

转载 P2P UDP NAT穿透原理

P2P UDP NAT穿透原理上一篇 / 下一篇  2009-03-06 15:43:43 查看( 36 ) / 评论( 0 ) / 评分( 0 / 0 ) 原创:shootingstars参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的

2009-09-04 13:54:00 1120 2

原创 完成端口使用总结 (转)

完成端口使用总结 (转) http://blog.csdn.net/dananhai/archive/2008/02/26/2122778.aspx前言本文不是全面介绍完成端口的,只是简单介绍了一下完成端口和几个常用概念。本文主要关注完成端口关闭时资源释放问题。基础介绍    完成端口——可能是Win32下最复杂的一种I/O模型,Win32下最复杂的内核对象。它通过指定数量的线程对

2009-08-20 17:56:00 470

转载 完成端口1

WinSocket模型的探讨——完成端口模型(一)开发者在线 Builder.com.cn 更新时间:2008-01-26作者:一雨田 来源:CSDN本文关键词: 端口模型 Winsocket 众所皆知,完成端口是在WINDOWS平台下效率最高,扩展性最好的IO模型,特别针对于WINSOCK的海量连接时,更能显示出其威力。其实建立一个完成端口的服务器也很简单,只要注意几个函数,了解

2009-08-20 16:40:00 381

原创 引擎网址收藏

     分类网站名称网址描述OGREOgre开放资源地带www.jenkinssoftware.com     RakNetRakNet官方网站www.jenkinssoftware.com     个人博客怪盗Kidhi.baidu

2009-08-16 10:29:00 437

转载 典型开源3D引擎分类比较

典型开源3D引擎分类比较常见的3D引擎有:Unreal,Quake,Lithtech,OGRE,Nebula,Irrlicht,Truevision3D...等,其中开源免费的有:orge,irrlicht,fly3d, NeoEngine, revolution3d, Nebula2,Genesis3d等。OGRE 在免费、开源的引擎中评价最高,一个原因是作为一个图形渲染引擎,它支持的图形特

2009-08-16 10:13:00 522

JHServer游戏服务器系统开发说明.pdf

介绍了一个网络游戏服务器开发系统。类似于ACE,该网络服务器系统采用了“异步模式、事件模式、任务模式”等开发模式,使用了智能指针。整个服务器系统分为“宿主(Host)、服务(Service)、精灵(Sprite)”三个模块。Host是主程序,加载Service和Sprite。Service是各个具体的服务。Sprite用于在各个Service之间通信。

2011-07-28

OpenGL开发指南.chm

 第一章 OpenGL与三维图形世界     1.1 OpenGL使人们进入三维图形世界     1.2 OpenGL提供直观的三维图形开发环境     1.3 OpenGL称为目前三维图形开发标准   第二章 OpenGL概念建立     2.1 OpenGL基本理解     2.2 OpenGL工作流程     2.3 OpenGL图形操作步骤   第三章 Windows NT环境下的OpenGL     3.1 Windows NT下的OpenGL函数     3.2 OpenGL基本功能     3.3 Windows NT下OpenGL结构   第四章 OpenGL基本程序结构   第五章 OpenGL数据类型和函数名   第六章 OpenGL辅助库的基本使用     6.1 辅助库函数分类     6.2 辅助库应用示例   第七章 OpenGL建模     7.1 描述图元      7.1.1 齐次坐标      7.1.2 点      7.1.3 线      7.1.4 多边形     7.2 绘制图元      7.2.1 定义顶点      7.2.2 构造几何图元   第八章 OpenGL变换     8.1 从三维空间到二维平面      8.1.1 相机模拟      8.1.2 三维图形显示流程      8.1.3 基本变换简单分析     8.2 几何变换      8.2.1 两个矩阵函数解释      8.2.2 平移      8.2.3 旋转      8.2.4 缩放和反射      8.2.5 几何变换举例     8.3 投影变换      8.3.1 正射投影      8.3.2 透视投影     8.4 裁剪变换     8.5 视口变换     8.6 堆栈操作   第九章 OpenGL颜色     9.1 计算机颜色      9.1.1 颜色生成原理      9.1.2 RGB色立体     9.2 颜色模式      9.2.1 RGBA模式      9.2.2 颜色表模式      9.2.3 两种模式应用场合     9.3 颜色应用举例   第十章 OpenGL光照     10.1 真实感图形基本概念     10.2 光照模型      10.2.1 简单光照模型      10.2.2 OpenGL光组成      10.2.3 创建光源      10.2.4 启动光照     10.3 明暗处理     10.4 材质      10.4.1 材质颜色      10.4.2 材质定义      10.4.3 材质RGB值和光源RGB值的关系      10.4.4 材质改变   第十一章 OpenGL位图和图像     11.1 位图      11.1.1 位图和字符      11.1.2 当前光栅位置      11.1.3 位图显示     11.2 图像      11.2.1 象素读写      11.2.2 象素拷贝      11.2.3 图像缩放      11.2.4 图像例程   第十二章 OpenGL纹理     12.1 基本步骤     12.2 纹理定义     12.3 纹理控制      12.3.1 滤波      12.3.2 重复与约简     12.4 映射方式     12.5 纹理坐标       12.5.1 坐标定义       12.5.2 坐标自动产生   第十三章 OpenGL复杂物体建模     13.1 图元扩展      13.1.1 点和线      13.1.2 多边形     13.2 法向计算      13.2.1 法向基本计算方法      13.2.2 法向定义     13.3 曲线生成      13.3.1 曲线绘制举例      13.3.2 曲线定义和启动      13.3.3 曲线坐标计算      13.3.4 定义均匀间隔曲线坐标值     13.4 曲面构造      13.4.1 曲面定义和坐标计算      13.4.2 定义均匀间隔的曲面坐标值      13.4.3 纹理曲面      13.4.4 NURBS曲面   第十四章 OpenGL特殊光处理     14.1 光照模型      14.1.1 全局环境光      14.1.2 近视点与无穷远视点      14.1.3 双面光照     14.2 光源位置与衰减     14.3 聚光与多光源      14.3.1 聚光      14.3.2 多光源与例程     14.4 光源位置与方向的控制     14.5 辐射光   第十五章 OpenGL效果处理     15.1 融合      15.1.1 Alpha值与融合      15.1.2 融合因子      15.1.3 融合实例     15.2 反走样      15.2.1 行为控制函数      15.2.2 点和线的反走样      15.2.3 多边形的反走样     15.3 雾      15.3.1 雾的概论和例程      15.3.2 雾化步骤   第十六章 OpenGL显示列表     16.1 显示列表概论      16.1.1 显示列表的优势      16.1.2 显示列表的适用场合     16.2 创建和执行显示列表      16.2.1 创建显示列表      16.2.2 执行显示列表     16.3 管理显示列表      16.4 多级显示列表   第十七章 OpenGL帧缓存和动画     17.1 帧缓存      17.1.1 帧缓存组成      17.1.2 缓存清除     17.2 动画

2009-07-10

空空如也

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

TA关注的人

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