- 博客(48)
- 收藏
- 关注
原创 《快3》测试
local nBalance = 1000local Bet = {11}local BetItem = {{4,80}, {5,40},{6,25},{7,16},{8,12},{9,10},{10,9},{11,9},{12,10},{13,12},{14,16},{15,25},{16,40},{17,80}}math.random
2014-05-29 17:48:18
1097
原创 fstream读取数据,排序处理后,写入数据
#include "stdafx.h"#include #include #include #include #include using namespace std;struct sInfo{ char szName[64]; char szValue[32]; char szOrigins[64];};bool UDgreater( sInfo elem1, sIn
2014-05-27 11:53:48
744
原创 游戏引擎
Photon: http://www.exitgames.com/ ORGE: http://www.ogre3d.org/ Irrlicht: http://irrlicht.sourceforge.net/ Crystal Space: http://www.crystalspace3d.org/main/Main_Page jME: http://www.jm
2011-06-17 13:12:00
465
转载 sizeof 计算出数组的长度
通过sizeof可以计算出类型的长度,同样也可以计算出数组的长度,但是这具有一定的局限性。以下是一段示例代码:#include "stdio.h"void Count_array_element_ptr(int *p){printf("%d/n",sizeof(p)/sizeof(p[0]));return ;}void Count_array_element_array(int
2011-06-09 22:44:00
1084
转载 友元类和友元函数(转)
《windows环境多线程编程原理与应用》中解释: 如果将类的封装比喻成一堵墙的话,那么友元机制就像墙上了开了一个门,那些得 到允许的类或函数允许通过这个门访问一般的类或者函数无法访问的私有属性和方法。友元机制使类的封装性得到消弱,所以使用时一定要慎重。友元类的说明将外界的某个类在本类别的定义中说明为友元,那么外界的类就成为本类的“朋 友”,那个类就可以访问本类的私有数据了。class Merch
2011-06-03 10:43:00
412
原创 控件子类化与控件超类化
<br /><br />子类化:<br />子 类化是这样一种技术,它允许一个应用程序截获发往另一个窗口的消息。一个应用程序通过截获属于另一个窗口的消息,从而实现增加、监视或者修改那个窗口的缺 省行为。子类化是用来改变或者扩展一个已存在的窗口的行为、而不用重新开发的有效途径。想要获得那些预定义控件窗口类(按钮控件、编辑控件、列表控件、下 拉列表控件、静态控件和滚动条控件)的功能而又要修改它们的某些行为的一个便利的方法就是对它们进行子类化。例如,对于一个在对话框中的多行编辑框来说, 当用户按下Enter键时,
2011-06-02 17:39:00
2980
转载 MAP原理及其在MFC中的实现
<br />一、 Map的基本知识<br /> <br /> 映射(Map),又称为字典(Dictionary),是由关键字(Key)及其对应的元素值(Value)所组成的元素单元(Element)的表单式集合。<br /> <br /> 通常,对于Map而言,使用给定的Key,可以迅速地从单元集合中检索到相应的元素。因此,在需要对大量数据进行查找操作而查找的性能又占据重要地位的场合,Map无疑是一种较理想的容器。譬如,在MFC中,使用Map来实现HandleMaps(句柄映射),以及其他的一些内部数据
2011-06-01 22:01:00
498
转载 模版详解(模版与宏) 转自:http://www.cppblog.com/zmllegtui/archive/2008/10/28/65316.html
<br />一、什么是模板<br /><br />模板是根据参数类型生成函数和类的机制(有时称为“参数决定类型”)。通过使用模板,可以只设计一个类来处理多种类型的数据,而不必为每一种类型分别创建类。<br />例如,创建一个类型安全函数来返回两个参数中较小的一个,如果不使用Templates,必须要编写一系列如下的函数:<br />// min for ints<br />int min( int a, int b )<br />return ( a < b ) ? a : b; <br />// min
2011-05-30 22:14:00
829
原创 设计模式所遵循原则
<br />设计模式根据现有书籍描述,多达200多种,但往往使用时并没有完全根据书本的描述去实现,关注设计模式的背后我们可以更多的关注一切设计模式都遵循的原则:(简单归纳一下几点)<br /> <br />1.代码模块化<br /> <br />2.oop(面向对象)<br /> <br />3.mvc(modal-view-control)<br /> <br />4.单一职责原则(SRP,singel responsibility)<br /> <br />5.开放-封闭原则(OCP,Open Clos
2011-05-25 10:07:00
348
转载 C++关键字
asmautobad_castbad_typeidboolbreakcasecatchcharclassconstconst_castcontinuedefaultdeletedodoubledynamic_castelseenumexceptexplicitexternfalsefinallyfloatforfriendgotoifinlineintlongmutablenamespacenewoperatorprivateprotectedpublicregisterrein
2011-04-14 13:25:00
359
转载 访问者模式
<br /> <br />Visitor访问者模式定义<br />作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作.<br />在Java中,Visitor模式实际上是分离了collection结构中的元素和对这些元素进行操作的行为.<br />为何使用Visitor?<br />Java的Collection(包括Vector和Hashtable)是我们最经常使用的技术,可是Collection好象是个黑色大染缸,本来有各种鲜明类型特征的对象一旦放入后
2011-04-14 11:07:00
320
转载 C++的虚函数机制
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。 当然,相
2011-04-09 16:30:00
370
转载 VC++中进程间相互通信的十一种方法
VC++中进程间相互通信的十一种方法 出处:VC源动力 责任编辑: 方舟 [ 2005-11-28 16:54 ] 进程通常被定义为一个正在运行的程序的实例,它由两个部分组成: 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方 另一个是地址空间,它包含所有的可执行模块或DLL模块的代码和数据。它还包含动态分配的空间。如线程堆栈和堆分配空间。每个进程被赋予它自己的虚拟地址空间,当进程中的一个线程正在运行时,该线程可以访问只属于它的进程的内存。属于其它进程的内存则是
2011-04-08 14:32:00
406
转载 vc 开发简单的flash 播放器
<br />1。新建一个基于对话框的程序,添加变量: <br /> int m_nTimer; //Timer时间控制 <br /> bool timerflag; //Timer启用的标志 <br /> bool screenflag; //全屏的标志 <br /> bool playflag; //有无文件打开的标志 <br /> CRect flashrect; //记录Shockwaveflash组件的矩形区域 <br /> WINDOWPLACEMENT
2011-04-08 14:14:00
629
转载 explicit含义
防止隐式转换class A{ int a; public: explicit A(int i):a(i){} }; int main() { A a(1),b(2); a = b; a = 2; //错误,不能隐式转换 return 0; }a=b 应该就是调用了复制构造函数的,对吧 那么如果要写a=2,应该要重载=运算符了,是不是 我记得初始化和赋值是不同的,如
2011-04-07 16:54:00
390
转载 RTTI 转自:http://tsuui.is-programmer.com/posts/757.html
<br /><br />RTTI是什么?<br />RTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。它提供了运行时确定对象类型的方法。本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念,并通过具体例子和代码介绍什么时候使用以及如何使用 RTTI;本文还将详细描述两个重要的 RTTI 运算符的使用方法,它们是 typeid 和 dynamic_cast。 <br />其实,RTTI 在C++中并不是什么新的东西,它早在十多年以前就已经出现了。但是大
2011-04-06 22:12:00
832
转载 extern及extern “C”用法 转自:http://www.cublog.cn/u/29619/showart_230148.html
<br />extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字创意产品网 .<br />它告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。<br />1。对于extern变量来说,仅仅是一个变量的声明,其并不是在定义分配内存空间。如果该变量定义多次,会有连接错误<br />2。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。也就是说c文件里面定义,如果该函数或者变量与开放给外面,则在h文件中用extern加以声明。所以外部文件只用
2011-04-01 22:05:00
559
原创 宽字符 单字符互转
string _w2s(const wstring& ws){ string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C"; setlocale(LC_ALL, "chs"); const wchar_t* _Source = ws.c_str(); size_t _Dsize = 2 * ws.size()
2011-03-17 10:57:00
800
原创 (转)ACE 示例2 --- Echo Server
<br />Echo server就是那种提供回显服务的程序,就是收到什么,然后就发送什么的程序。<br /><br />两种实现方法<br /><br />1.Per client Per Thread (每个连接每个线程来处理)<br /><br />这种方式比较简单,易于实现。缺点是如果有大量的连接,必然占用过量的系统资源。<br /><br />#ifdef _DEBUG#pragma comment(lib,"ACED.lib")#else#pragma comment(lib,"AC
2011-02-27 17:14:00
394
原创 (转)ACE示例3 - ACE Proactor
这个示例将用ACE Proactor来实现echo server代码量差不多只有完成端口的1/3ACE Reactor的实现http://www.cppblog.com/sandy/archive/2006/02/17/3308.html完成端口的实现http://www.cppblog.com/sandy/archive/2007/06/06/25670.html
2011-02-27 17:09:00
572
原创 (转)用完成端口写的echo server
<br />#include <winsock2.h>#include <mswsock.h>#include <windows.h>#include <iostream>using namespace std;int g_ThreadCount;HANDLE g_hIOCP = INVALID_HANDLE_VALUE;SOCKET g_ServerSocket = INVALID_SOCKET;// Maximum Buffer Size#define M
2011-02-27 17:04:00
616
转载 Lua栈介绍以及实例
<br />c++中载入lua的代码<br />#include <> //所需要的头文件<br />extern "C"<br />{<br />#include "include/lua.h"<br />#include "include/lualib.h"<br />#include "include/lauxlib.h"<br />#pragma comment(lib, "lua.lib")<br />};<br />int main(void)<br />{<br /> char
2010-08-25 14:12:00
5659
转载 STL中迭代器浅析(转自:http://blog.youkuaiyun.com/gou_zh/archive/2008/11/04/3209974.aspx)
<br />STL中迭代器浅析<br /> <br />C++中的迭代器主要有三种,迭代器的作用就是让你用*iter就可以访问容器中的值,用iter++就可以向后遍历,而不必去管容器的内部结构。<br /> <br />1.insert iterator(安插型迭代器,三种)<br />back_insert_iterator, front_insert_iterator, insert_iterator //使用前必须初始化<br />back_inserter(), front_inserter(),
2010-08-17 15:00:00
1037
转载 类间关系的种类
1:类间关系的种类2:关联描述了系统中对象或实例之间的离散连接,关联带有系统中各个对象之间关系的信息。2.1关联表示法2.2聚集与组合3:泛化,继承【Generalization】泛化关系是类元的一般描述和具体描述之间的关系,具体描述建立在一般描述的基础之上,并对其进行了扩展。4: 实现【realization】实现关系将一种模型元素(如类)与另一种
2010-05-24 13:06:00
947
转载 UML基本元素
类图是面向对象系统建模中最常见的图,类图显示了一组类、接口、协作以及它们之间的关系。类图用于对系统的静态设计视图建模。 在UML中类以矩形表示,具有名称、属性、操作、和关系等描述。接下来我们将全面的对类里面的每个元素的表现作出详细的介绍。 类: 在UML中类以一个矩形表示,类的名称用一个字符串表示。 抽象类通过将类名改为斜体字表不能继承的类(叶子类,封闭类)通过在类名下
2010-05-24 11:19:00
3212
转载 简单工厂模式 与 抽象工厂模式
//////////////////////////////////////////////////////////////////////////简单工厂模式class CDisplayer{public: virtual void Play() = 0;};class CVCDDisplayer : public CDisplayer{public:
2010-05-17 14:51:00
351
转载 volatile关键字说明
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改。用volatile关键字声明的变量i每一次被访问时,执行部件都会从i相应的内存单元中取出i的值。没有用volatile关键字声明的变量i在被访问的时候可能直接从cpu的寄存器中取值(因为之前i被访问过,也就是说之前就从内存中取出i的值保存到某个寄存器中),之所以直接从寄存器中取值,而不去内存中取值
2010-05-16 16:38:00
224
转载 设计模式--单件模式
Singleton模式是常用的设计模式之一,但是要实现一个真正实用的设计模式却也不是件容易的事情。 1.标准的实现class Singleton{public: static Singleton * Instance() { if( 0== _instance) {
2010-05-12 13:16:00
279
原创 十进制转十六进制
十进制转十六进制采余数定理分解,例如将487710转成十六进制: 4877÷16=304....13(D)304÷16=19....019÷16=1....31÷16=0....1这样就计到487710=130D16 如上例,将 130D16 反算回十进制如下,其中英文字母要当作一整组数字来处理,如 D 要当作 13 处理,且不可和其它位数的数字混淆。
2010-05-07 16:48:00
574
转载 stl string常用函数
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 string类的字符操
2010-05-07 13:57:00
1553
转载 cin.get()与cin.getline()的区别
cin.getline()和cin.get()都是对输入的面向行的读取,即一次读取整行而不是单个数字或字符,但是二者有一定的区别。 cin.get()每次读取一整行并把由Enter键生成的换行符留在输入队列中,在这个例子中,cin.get()将输入的名字读取到了name中,并将由Enter生成的换行符/n留在了输入队列(即输入缓冲区)中,因此下一次的cin.get()便在缓冲区中发现了
2010-05-07 13:08:00
679
转载 两个栈实现队列C++代码
//头文件class ZStackQueue{public: class ZStack { public: ZStack(int size); ~ZStack(); int Pop(); void Push(int e); bool Empty(){return top == 0;} private: int *s; i
2010-05-06 21:25:00
888
1
原创 观察者模式实例
头文件:class CObserver{public: void Action(int i) { cout<<"object has change to "<<i<<endl; }};class CObserveAgent{public: void AddObserver(CObserver &ob
2010-05-06 13:20:00
465
原创 as3.0 字符转换(针对unicode字符的处理)
针对flash游戏的网络通讯,使flash字符都使用unicode的方式进行处理,在没有找到As3.0自身对unicode字符的处理方式,本人采用了下列处理方法 unicode字符串转为ByteArray: //unicode string to ByteArray public static function StrToByteArray( strValue:String,
2010-04-15 12:36:00
10534
3
原创 flash 由于此SWF不包含ActionScript问题的解决
发现网上很多用flash cs3编程的大伙都遇到过这样的问题,明明之前的代码没有任何修改,却编译不了,出现一个“由于此SWF不包含ActionScript, 因此无法编译”,我也总算遇到了,后来,找了个官方英文版的flash cs3 professsional安装文件,在该安装文件的安装页面,我发现有与其他不同的是,该安装多了一个“什么什么flash Encoder的插件”,相信要解决以上的
2010-04-12 16:58:00
15709
原创 mfc字符串截取-程序路径,文件扩展名等
//在全路径获取文件名//const CString & localFileNamewchar_t tempStr[100]; //storage the file namememset(tempStr,0,100);int strLen = localFileName.GetLength();int i = strLen - 1;int fileLen = 0;while (localFileN
2010-03-26 13:36:00
3547
转载 c++ 字符类型总结
1.区别wchar_t,char,WCHAR ANSI:即 char,可用字符串处理函数:strcat( ),strcpy( ), strlen( )等以str打头的函数。 UNICODE:wchar_t是Unicode字符的数据类型,它实际定义在里: typedef unsigned short wchar_t; 另外,在头文件中有这样的定义:typedef wchar_t WCHA
2010-03-26 13:34:00
413
原创 串口通讯
1、API描述 在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致。 打开串口 Win32 中用于打开串口的API 函数为CreateFile,其原型为:HANDLE CreateFile ( LPCTSTR lpFileName, //将要打开的串口逻辑名,如COM1 或COM2 DWORD dwAccess, //指定串口访问的类
2010-03-26 13:32:00
305
原创 获取精确毫秒的时间间隔
//开始 LARGE_INTEGER iLarge; QueryPerformanceFrequency(&iLarge); double dbFreq = (double) iLarge.QuadPart; QueryPerformanceCounter(&iLarge); double dbBegin = (double) iLarge.QuadPart;//结束部分QueryPerfor
2010-03-26 13:31:00
727
原创 在dialog上显示位图
void FIRSTPAGE::OnPaint(){ CDialog::OnPaint(); CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP_B3); BITMAP bmp; bitmap.GetBitmap(&bmp); CWnd * wnd = AfxGetMainWnd(); CDC * cdc = wnd-
2010-03-26 13:29:00
531
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人