IOCP 的资源释放问题
在参考了一些资料,并且尝试了几次之后,也逐渐想到了一个用来安全释放 IOCP 资源的办法。
http://groups.google.com/group/dev4server/browse_thread/thread/29a91064931a628e
接着发现有人已经把这种方案描述的很清楚了
http://blog.codingnow.com/2007/07/robust.html#commen ...
by iunknown 2008-05-11 浏览 (26) 回复 (1)
回调函数的用法
在要调用回调函数的类中声明:
CallFun.h
//返回类型为void, 参数类型为std::string
typedef void(*PCALLBACKFunc) (std::string );
class CallFun{
private:
PCALLBACKFunc m_pCallBack;
public:
void setCallBack ...
by JasonRight 2008-05-08 浏览 (50) 回复 (0)
boost库的常用用法
class Shape
class Triangle : public Shape
1.shared_ptr
定义类:
typedef boost::shared_ptr<class Shape> ShapeSharedPtr;
实例化:
ShapeSharedPtr shapeSP = ShapeSharedPtr(new Shape());
定义数组:
type ...
by JasonRight 2008-05-07 浏览 (49) 回复 (0)
截取中文输入法输入的字符串,更改编码为ANSI
在全英文的XP中,在非unicode的程序中输入的中文会转为“??”。
通过截获WM_IME_COMPOSITION消息得到输入的字符串
ImmGetCompositionStringW得到Unicode
WideCharToMultiByte转换为ANSI
BOOL CchartestDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->m ...
by JasonRight 2008-04-29 浏览 (167) 回复 (0)
数据库多表连接查询
学习数据库查询的时候对多表连接查询的有些概念还比较模糊。而连接查询是在数据库查询操作的时候肯定要用到的。对于此概念
我用通俗一些的语言和例子来进行讲解。这个例子是我讲课的时候经常采用的例子。
首先我们做两张表:员工信息表和部门信息表,在此,表的建立只为讲述连接的概念,所以字段非常的简单
EmployeeTB(员工信息表):
employeeid employeename deptid
0001 ...
by Angelialily 2008-04-22 浏览 (221) 回复 (1)
[zz] 川人陈春先
作者:吴晓波
2004年8月9日,陈春先去世,两天前,他刚刚过了70岁的生日。即便是中关村的人,也没有几个还记得他的名字了,“遗忘”是这部中国企业史最重要的特征之一。
1980年10月,中国最顶尖的核聚变专家、46岁的中国科学院物理所研究员陈春先从美国考察回来,这已经是他两年里第三次访问美国了,这几次出国让他印象最深的倒还不是美国同行的学术进步,而是那个国家在技术产业化上的扩散 ...
by iunknown 2008-04-20 浏览 (265) 回复 (1)
C++/Qt开发记录——为什么选择
跨平台,成熟的GUI框架,良好的2D/3D图形绘制能力。进一步某些计算处理还可能有并行,集群的要求。当然,还要有一定数量的业内成功范例。
这样一选择目前的流行开发语言和框架,大概只有C++/Qt了。对于3D,则是OpenGL。而采用的Coin3D是OpenGL的开源面向对象包装,节省很多时间,特别是你有体视化的需求的时候。
Qt4的Graphics View/Scene框架很适合开发2D的 ...
by wzgme 2008-04-19 浏览 (406) 回复 (4)
C++/Qt开发记录——开发环境
把自己的一些想法记录下来。这不是第一次了。希望这次能坚持久一点。
先把自己的开发环境记录如下:
VS2005/Qt.Visual.Studio.Integration 1.2.2
Qt4.3.0
qwt5.0.2
Coin3D2.5.0/soQt1.4.1
上张图,标准的qwt示例,Qt用linguist实现i18n是非常的方便。
by wzgme 2008-04-16 浏览 (302) 回复 (0)
得到集合中的最后一条记录&和求基数偶数
有这样一个例子,需要用一个表格来显示从数据库里读取出来的数据。显示结果的表头和表尾合计需要显示同样的颜色。
尔中间每行则要显示交叉颜色。来统计出数据总数及百分比。
我想到的是用基数和偶数这样一个算法来实现交叉的颜色显示,尔表的尾部合计读取出来的数据要和表头同样的颜色。开始我首选了用
lastIndex()这个函数来判断集合是否读取到最后一行。后来又想到有一个更简单的方法。就是用循环变数i和集合li ...
by Angelialily 2008-03-25 浏览 (796) 回复 (0)
温故而知新 - static应用
1> A static data member can be of the same class type as that of which it is a member. a nonstatic data member is restricted to being decleared as a pointer or a reference to an object of its class.
c ...
by xombat 2008-03-24 浏览 (810) 回复 (0)
人到底能走多远,路在何方?
晚饭后和以前的同事在qq上交流开发心得,提到了目前自己的战斗力的话题,其间饶有兴趣的讨论,过后却觉得心里不舒服:
一方面可能是因为自己技术和他差一个档次,觉得压力大
另一方面过后又想想IT技术无止境,人到底能走多远?脚下的路又在何方呢??
不错,IT技术日新月异,新技术,新语言,新的设计理念层出不穷。是否应该不停的去学习,去追逐新技术,新理念,不停的修炼,一直朝新的境界修为迈进,不停止的达到更 ...
by cuishen 2008-03-19 浏览 (1049) 回复 (5)
温故而知新 - 对象初始化
Class的成员变量总是以其声明的次序被初始化,而不是以构造函数的成员初始化列表的顺序被初始化。
对于构造函数中的函数体中的“初始化”只能算作是“伪初始化”,严格地说,成员初始化应该放在成员初始化列表中。
问:如何在构造函数的成员初始化列表中初始化基本类型的定长数组(比如对int arr[5],应该将他的每个元素全部初始化为0);
问: 这段代码:
class GamePlayer{
pr ...
by xombat 2008-03-16 浏览 (1114) 回复 (0)
温故而知新-const应用
class专属常量的声明和定义有两种方式:
一种是in-class initialization 方式,这种方式只适用于: (三者同时满足)
1.新式编译器
2.integral type(ints, chars, bools)(floats, doubles有些例外,它支持这种方式,但要求类外部一定要有定义式)
3.static const ...
by xombat 2008-03-12 浏览 (1261) 回复 (3)
在线购物系统毕业论文 &图书管理系统毕业论文
前两天学校让做毕业论文。很着急关键是要求的字数和页数太多了,拿我现在做的项目整理的话怎么也得整理两三天。太慢了 ,所以投机取巧在网上下载了一个在线购物的系统和图书管理系统。在好多个地方下载了一些个论文啊,分析,设计,数据库等等拼凑在一起。自己觉得还不错算是很完整。如果你也正需要毕业设计,正在为这个发愁,不防参考一下我整理的。自己在稍加修改便可。
不好意思 ,不可以上传。如果需要请留下邮箱号码,或 ...
by Angelialily 2008-03-05 浏览 (1698) 回复 (5)
GCC不能正确继承模板类
GCC编译器似乎不能理解继承自模板类里的数据成员。我还以为是代码的问题,郁闷了半天后,居然在Borland C++ 5.5下编译通过了。节省篇幅,我抽出主要部分。
template<class T>
class A{
protected:
T id;
};
template<class T>
class B: public A<T>{
public:
...
by ggggqqqqihc 2008-03-01 浏览 (1382) 回复 (2)
析构函数 管理指针成员
析构函数就是这样的一个特殊函数,它可以完成所需的资源回收,作为类构造函数的补充撤销类对象时会自动调用析构函数 动态分配的对象只有在指向该对象的指针被删除时才撤销 当对象的引用或指针超出作用域时,不会运行析构函数,只有删除指向动态分配对象的指针或实际对象(而不是对象的引用)超出作用域时,才会运行析构函数 撤销一个容器(不管是标准库容器还是内置数组)时,也会运行容器中的类 ...
by clskkk2222 2008-02-23 浏览 (1543) 回复 (0)
复制构造函数
只有单个形参,而且该形参是对本类类型对象的引用(常用 const 修饰),这样的构造函数称为复制构造函数 复制构造函数可用于:1. 根据另一个同类型的对象显式或隐式初始化一个对象2. 复制一个对象,将它作为实参传给一个函数3. 从函数返回时复制一个对象4. 初始化顺序容器中的元素5. 根据元素初始化式列表初始化数组元素 当用于类类型对象时,初始化的复制形式和直接形式有所不同:直 ...
by clskkk2222 2008-02-19 浏览 (1593) 回复 (0)
友元 static 类成员
友元机制允许一个类将对其非公有成员的访问权授予指定的函数或类 友元的声明以关键字 friend 开始,它只能出现在类定义的内部 友元声明可以出现在类中的任何地方:友元不是授予友元关系的那个类的成员,所以它们不受声明出现部分的访问控制影响通常,将友元声明成组地放在类定义的开始或结尾是个好主意 友元可以是普通的非成员函数,或前面定义的其他类的成员函数,或整个类 ...
by clskkk2222 2008-02-17 浏览 (1615) 回复 (0)
名字查找 构造函数 explicit
每个类都定义了自己的新作用域和唯一的类型,两个不同的类具有两个的类作用域 即使两个类具有完全相同的成员列表,它们也是不同的类型,每个类的成员不同于任何其他类(或任何其他作用域)的成员 在类作用域之外,成员只能通过对象或指针分别使用成员访问操作符 . 或 -> 来访问.操作符左边的操作数是一个类对象->操作符左边的操作数是指向类对象的指针 形参表和函数体处于 ...
by clskkk2222 2008-02-16 浏览 (1610) 回复 (0)
成员函数 this指针 可变数据成员
类的成员函数可以访问该类的 private 成员 每个成员函数(除了static 成员函数外)都有一个额外的、隐含的形参 this,在调用成员函数时,形参 this 初始化为调用函数的对象的地址 使用 const 的函数称为常量成员函数,由于this 是指向 const 对象的指针,const 成员函数不能修改调用该函数的对象 const 对象、指向 const 对象 ...
by clskkk2222 2008-02-16 浏览 (1622) 回复 (0)
类class(一)
最简单地说,类就是定义了一个新的类型和一个新作用域每个类可以没有成员,也可以定义多个成员,成员可以是数据、函数或类型别名一个类可以包含若干公有的、私有的和受保护的部分创建一个类类型的对象时,编译器会自动使用一个构造函数来初始化该对象构造函数一般就使用一个构造函数初始化列表来初始化对象的数据成员在类内部,声明成员函数是必需的,而定义成员函数则是可选的,在类内部定义的函数默认为 inline在类外部定 ...
by clskkk2222 2008-02-14 浏览 (1605) 回复 (0)
输入输出IO
每一个 IO 头文件都定义了 char 和 wchar_t 类型的类和标准输入/输出对象。IO 对象不可复制或赋值由于流对象不能复制,因此不能存储在 vector(或其他)容器中。形参或返回类型也不能为流类型。如果需要传递或返回 IO 对象,则必须传递或返回指向该对象的指针或引用对 IO 对象的读写会改变它的状态,因此引用必须是非 const 的。检测流是否用的最简单的方法是检查其真值所有流对象都 ...
by clskkk2222 2008-02-12 浏览 (1747) 回复 (0)
函数function
函数由函数名以及一组操作数类型唯一地表示。函数的操作数,也即形参,在一对圆括号中声明,形参与形参之间以逗号分隔。函数执行的运算在一个称为函数体的块语句中定义。每一个函数都有一个相关联的返回类型。C++ 语言使用调用操作符(即一对圆括号)实现函数的调用。函数体是一个作用域类似于局部变量,函数的形参为函数提供了已命名的局部存储空间。它们之间的差别在于形参是在函数的形参表中定义的,并由调用函数时传递函数 ...
by clskkk2222 2008-02-12 浏览 (1645) 回复 (0)
语句(...)
简单语句C++ 中,大多数语句以分号结束。程序语句最简单的形式是空语句(只有一个单独的分号)如果在程序的某个地方,语法上需要一个语句,但逻辑上并不需要,此时应该使用空语句。使用空语句时应该加上注释,以便任何读这段代码的人都知道该语句是有意省略的。无关的空语句并非总是无害的。在 C++ 中,对象或类的定义或声明也是语句。复合语句,通常被称为块,是用一对花括号括起来的语句序列(也可能是空的)。块标识了 ...
by clskkk2222 2008-02-12 浏览 (1658) 回复 (0)
表达式
表达式由一个或多个操作数通过操作符组合而成。最简单的表达式仅包含一个字面值常量或变量。每个表达式都会产生一个结果。当一个对象用在需要使用其值的地方,则计算该对象的值。除了特殊用法外,表达式的结果是右值,可以读取该结果值,但是不允许对它进行赋值。操作符的含义——该操作符执行什么操作操作结果的类型——取决于操作数的类型回绕1. 无符号整数变量的值超过它能 ...
by clskkk2222 2008-02-12 浏览 (1596) 回复 (0)
数组和指针
数组是由类型名、标识符和维数组成的复合数据类型数组也是一种存储单一数据类型对象的容器,其中每个对象都没有单独的名字,而是通过它在数组中的位置对它进行访问。数组的长度是固定的,数组一经创建,就不允许添加新的元素。Note:数组的维数必须用值大于等于1的常量表达式定义常量表达式只能包含整型字面值常量、枚举常量或者用常量表达式初始化的整型 const 对象。非 const 变量以及要到运行阶段才知道其值 ...
by clskkk2222 2008-02-12 浏览 (1599) 回复 (0)
标准库类型
string 类型支持长度可变的字符串,C++ 标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作。#include <string>using std::string; 字符串字面值与标准库 string 类型不是同一种类型。用 iostream 和 string 标准库,使用标准输入输出操作符来读写 string 对象读取并忽略开头所有的空白字符(如空格,换行符 ...
by clskkk2222 2008-02-12 浏览 (1505) 回复 (0)
变量和基本类型
类型是所有程序的基础,类型告诉我们数据代表什么意思以及可以对数据执行哪些操作。类型确定了数据和操作在程序中的意义。 基本内置类型C++ 定义了一组表示整数、浮点数、单个字符和布尔值的算术类型,另外还定义了一种称为 void 的特殊类型。算术类型的存储空间依机器而定,单位:位(bit)C++标准规定了每个算术类型的最小存储空间,但它并不阻止编译器使用更大的存储空间。可以用sizeof()查 ...
by clskkk2222 2008-02-12 浏览 (1557) 回复 (0)

