自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

把握自己。

专注linux、english

  • 博客(59)
  • 资源 (7)
  • 收藏
  • 关注

原创 如何提高自己的气场

一个人的“气场”,也就是通过这个人的言谈、举止、为人、处世等各种综合气质带来的受人尊重的影响力。把前面的的方面总结起来,一个人要提升受人尊重的影响力,要做到:自信、自重、沉稳、干练、少说、做好、乐观、从容、有度、有威、有谋、有守、有攻、有实力。 一、必须自信。只有

2011-10-12 16:42:20 4970 10

原创 C语言文件操作

13.3 文件的打开与关闭 文件在进行读写操作之前要先打开,使用完毕要关闭。所谓打开文件,实际上是建立文件的各种有关信息,并使文件指针指向该文件,以便进行其它操作。关闭文件则断开指针与文件之间的联系,也就禁止再对该文件进行操作。 在C语言中,文件操作都是由库函数来完成的。在本章内将介绍主要的文件操作函数。 13.3.1 文件的打开(fopen函数) fopen函数用来打开一

2011-10-31 14:49:00 2446

原创 死锁与饥饿

在多道程序系统中,同时有多个进程并发运行,共享系统资源,从而提高了系统资源利用率,提高了系统的处理能力。但是,若对资源的管理、分配和使用不当,则会产生死锁或是饥饿。所谓死锁是指在多道程序系统中,一组进程中的每一个进程军无限期等待被该组进程中的另一个进程所占有且永远不会释放的资源。饥饿是指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进

2011-10-29 15:12:22 2085

原创 win7生成生成Detours.lib以及简单使用实例

Detours是微软开发的一个函数库,可用于捕获系统API。在用其进行程序开发之前,得做一些准备工作:一.下载Detours     在http://research.microsoft.com/sn/detours 可免费下载Detours二.安装Detours        一路NEXT三.生成Detours库        在安装后的文件夹下找不到直接可以拿来用的

2011-10-29 15:00:53 8060

原创 __try,__except,__finally,__leave异常模型机制

导读: 从本篇文章开始,将全面阐述__try,__except,__finally,__leave异常模型机制,它也即是Windows系列操作系统平台上提供的SEH模型。主人公阿愚将在这里与大家分享SEH( 结构化异常处理)的学习过程和经验总结。 深入理解请参阅>第23, 24章. SEH实际包含两个主要功能:结束处理(termination handling)和异常处理(ex

2011-10-29 14:52:49 10932 2

原创 指向类成员的指针

指向类成员的指针,印象中似乎很少用到,重新学习C++的过程中,才发现自己是忽视了一个很重要的东东,以前我一直认为类的成员函数不能作为回调函数,所以很多C程序都始终无法移植到C++上来,现在才知道,这是对指向类成员的指针不了解的缘故。  1、指向非静态成员的指针  其实指向非静态的类成员的指针很容易,它们与普通指针唯一的区别是,他们受类的限制。如下:  class A  {

2011-10-29 14:50:16 2096

原创 可重入函数

可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。可重入函数简介  也可以这样理解,重入即表示

2011-10-29 14:48:11 1886 1

原创 c++关键字详解(volatile, mutable, explicit, dynamic_ cast<T>(expression))等

1  volatile有些变量是用volatile关键字声明的。当两个线程都要用到某一个变量且该变量的值会被改变时,应该用volatile声明,该关键字的作用是防止优化编译器把变量从内存装入CPU寄存器中。如果变量被装入寄存器,那么两个线程有可能一个使用内存中的变量,一个使用寄存器中的变量,这会造成程序的错误执行。 volatile的意思是让编译器每次操作该变量时一定要从内存中真正取出,而不是

2011-10-29 14:45:00 2778

原创 深入理解C++中的mutable关键字

mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。  在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。     他只能用于类的非静态和非常量数据成员   我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,对

2011-10-29 14:44:16 1372

原创 C++的 RTTI 概念和用途

自从1993年Bjarne Stroustrup 〔注1 〕提出有关C++ 的RTTI功能之建议﹐以及C++的异常处理(exception handling)需要RTTI;最近新推出的C++ 或多或少已提供RTTI。 然而,若不小心使用RTTI,可能会导致软件弹性的降低。本文将介绍RTTI的观念和近况﹐并说明如何善用它。 什么是RTTI?     在C++ 环境中﹐头文件(he

2011-10-29 14:41:20 1309

原创 private的虚函数

3.1 private的虚函数   考虑下面的例子:class A{public:void foo() { bar();}private:virtual void bar() { ...}};class B: public A{private:virtual void bar() { ...}};  在这个例子中,虽然ba

2011-10-29 14:39:21 1700

原创 C++委托简介

委托就是把具体事情让别人做,我只调用你的函数。下面是一个例子:class RealSort{public:void sort();};class MySort{private:RealSort rs;public:SetName(RealSort rs){   this->rs = rs;}void sort()

2011-10-29 14:37:05 2634

原创 关于拷贝构造函数和赋值运算符

重点:包含动态分配成员的类 应提供拷贝构造函数,并重载"="赋值操作符。 以下讨论中将用到的例子:class CExample{public: CExample(){pBuffer = NULL; nSize = 0;} ~CExample(){delete pBuffer;} void Init(int n){ pBuffer = new char[n]; nSiz

2011-10-29 14:36:03 1327

原创 理解句柄类

在代理类的帮助下,我们已经可以实现在一个容器里存储一个类层次里所有类型的对象,但是代理有一个很明显的缺点,就是需要复制对象,当一个对象非常大或者是一种不能轻易复制的资源的时候,这个实现遇到了很大的困难,于是我们有了句柄(handle)类这个技术。   我们有这么一个类class point{public:    point():x_cdt(0),y_cd

2011-10-29 14:34:10 1344

原创 C++中代理类和句柄类

指针是 C 与其他语言区别的重要特征之一,在 C++ 中,指针也被广泛运用,我们通过指针实现多态。然而,众所周知,指针的使用必须小心,否则很容易造成内存泄漏 Memory Leak。当我们有几个指针指向同一个对象时有其应该注意,关于何时释放这个对象:(1) 如果释放的太早,那么其它的指针仍然指向这片内存,如果再使用它会造成未定义行为。(2) 如果一直不释放可能会丢失最后一个指向这个对象的指

2011-10-29 14:32:45 1742

原创 表驱动法介绍

什么是表驱动  表驱动,又称之为表驱动法、表驱动方法。  “表”是几乎所有数据结构课本都要讨论的非常有用的数据结构。表驱动方法出于特定的目的来使用表,程序员们经常谈到“表驱动”方法,但是课本中却从未提到过什么是"表驱动"方法。表驱动方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或Case)来把它们找出来的方法。事实上,任何信息都可以通过表来挑选。在简单的情况

2011-10-29 14:26:58 1714 2

原创 c++ io标准库

原文见:http://hi.baidu.com/dwl_1989/blog/item/5cbad08b212849fbf01f369f.html我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的stdio库不同,它从一开始就是用多重继承与虚拟继承实现的面向对象的层次结构,作为一个c++的标准库组件提供给程序

2011-10-29 14:24:37 3285

原创 C++局部类和嵌套类

如果嵌套类型和其外部类型之间的关系需要成员可访问性语义,需要使用C++嵌套类,嵌套类型不应针对其声明类型以外的类型执行任务,而C++局部类允许类、结构和接口被分成多个小块儿并存储在不同的源文件中,这样的实现很容易开发和维护。C++局部类:在一个函数体内定义的类称为局部类。局部类中只能使用它的外围作用域中的对象和函数进行联系,因为外围作用域中的变量与该局部类的对象无关(#add,这半句是

2011-10-29 13:56:06 1776

原创 关于虚拟继承的思考

虚拟继承在一般的应用中很少用到,所以也往往被忽视,这也主要是因为在C++中,多重继承是不推荐的,而一旦离开了多重继承,虚拟继承就完全失去了存在的必要(因为这样只会降低效率和占用更多的空间,实在是一无是处)。  以下面的一个例子为例:  #include   #include   class CA  {   int k; //为了便于说明后面的内存结构特别添加

2011-10-29 13:53:08 1351 1

原创 使用 MFC 编写打印程序

摘要  本文首先介绍了利用MFC提供的文档视图框架来实现一个打印程序,并实现打印预览,在此基础上,同时通过对MFC源代码的深入探讨,提出了利用该方法在对话框上用MFC实现打印功能,结果表明,利用MFC实现打印不仅方便,而且功能很强大,能够根据不同的需求很方便的打印出所需要的格式。本文还实现了一个在对话框中利用MFC实现打印功能的一个框架结构,对于使用者只要使用该结构就可以按照自己的要求打印

2011-10-28 18:15:46 3439 1

原创 C 数据类型总结

一、数据类型 数据类型是按照规定形式表示数据的一种方式,不同的数据类型占用空间也不同。 为了学习方便,特意整理了下C语言的数据类型的分类结构,如下图: 对于数据类型,还应该明白以下几点 1、整型数据 int可以有修饰符 short、long、long long三种,后面的int可省略,默认的整形数据常量为int(#add,共4

2011-10-28 16:36:48 1321

原创 CFileDialog的应用

首先构造一个对象并提供相应的参数,构造函数原型如下: CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lps

2011-10-28 11:13:37 1045

原创 DLL基础理论

DLL的优点简单的说,dll有以下几个优点:1)      节省内存。同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中。如果使用dll,则只在内存中加载一次,所有使用该dll的进程会共享此块内存(当然,像dll中的全局变量这种东西是会被每个进程复制一份的)。2)      便于不需编译的软件系统升

2011-10-28 11:09:25 1091

原创 动窗口的制作暨CSizingControlBar类的使用说明

本文在实现过程中,为了方便起见,参照VC 知识库《轻松实现类VC界面》。  一、实现原理图中右侧浮动窗口的实现类是从CControlBar派生出来的,我们并不需要从头到尾实现该类,因为Cristi Posea先生已经为我们实现了一个称为CSizingControlBar的类,而且做得相当完美!我们所要做的便是好好地利用该类,为了尽可能地简洁,将CSizingControlBar

2011-10-28 11:07:59 1563

原创 WaitForSingleObject和 WaitForMultipleObjects

DWORD WaitForSingleObject(   HANDLE hHandle,   DWORD dwMilliseconds   );参数:      hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果事件是有信号状态返回WAIT_OBJECT_0,如果时间超过dwMilliseconds值但时间事件还是无信号状态则返回WAIT

2011-10-28 10:40:55 3098 1

原创 _declspec(dllexport)与_declspec(dllimport)

我相信写WIN32程序的人,做过DLL,都会很清楚__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类。但是,MSDN文档里面,对于__declspec(dllimport)的说明让人感觉有点奇怪,先来看看

2011-10-28 10:26:56 1201

原创 WM_MOUSELEAVE和WM_MOUSEHOVER使用

默认情况下,窗口是不响应 WM_MOUSELEAVE 和 WM_MOUSEHOVER 消息的,所以要使用 _TrackMouseEvent 函数来激活这两个消息。调用这个函数后,当鼠标在指定窗口上停留超过一定时间或离开窗口后,该函数会 Post 这两个消息到指定窗口。使用方法:1. 在对话框类中定义一个变量来标识是否追踪当前鼠标状态,之所以要这样定义是要避免鼠标已经在窗体之上时,一

2011-10-28 10:22:45 3289 3

原创 非模态对话框 及与模态对话框的转换

1、非模态对话框的模板必须具有Visible风格,否则对话框将不可见,而模态对话框则无需设置该项风格。更保险的办法是调用CWnd::ShowWindow(SW_SHOW)来显示对话框,而不管对话框是否具有Visible风格。2、非模态对话框对象是用new操作符在堆中动态创建的,而不是以成员变量的形式嵌入到别的对象中或以局部变量的形式构建在堆栈上。通常应在对话框的拥有者窗口类内声明一

2011-10-28 10:13:52 2385

原创 BCG界面库使用指南

本文以MDI应用程序为例说明如何在已有的VC++工程中使用BCG界面库,我的开发环境为VS2003。1,将BCG/BCGCBPro目录路径添加到“项目属性->C/C++ ->常规 ->附加包含目录”中,同时将BCG/Bin目录路径添加到“项目属性->链接器 ->常规 ->附加库目录”中。2,确保在CWinApp派生类(设为CMyApp)的InitInstance()成员函数中调用A

2011-10-28 10:10:41 5336

原创 TinyXML:一个优秀的C++ XML解析器

读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。DOM模型即

2011-10-28 10:01:24 2380 1

原创 游戏程序员养成计划

与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。         首先你要精通一门高级语言,比如C++或者C#,其次,要有良好的英文阅读能力。对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为你遇到的大部分资源都将是英文的,

2011-10-28 09:56:05 4454 4

原创 Windows与Linux下进程间通信技术比较

一般我们写的程序都是以单个进程的方式来运行的,比较少涉及到多进程。特别是在windows下,因为Windows是按照线程来分配CPU时间片的,线程是最小的调度单位,所以在Windows下更多的用到多线程,在同一个进程里创建多个线程来执行不同的任务,达到充分利用CPU的目的。线程之间可以共享进程的资源,比如内存、变量,但是多线程有一个不好的地方,由于这些线程是在同一个进程空间里执行,所以只要一个线程

2011-10-28 09:48:18 2840

原创 TCP/IP通信程序设计的丰富多样性

刚接触TCP/IP通信设计的人根据范例可以很快编出一个通信程 序,据此一些人可能会认为TCP/IP编程很简单。其实不然, TCP/IP编程具有较为丰富的内容。其编程的丰富性主要体现在 通信方式和报文格式的多样性上。一。通信方式:主要有以下三大类:(一)SERVER/CLIENT方式1.一个Client方连接一个Server方,或称点对点(peer to

2011-10-28 09:43:17 1355

原创 c++中引用和指针的内部实现

c++中,引用和指针时比较让人混淆的。它们的外在区别想必很多人都知道。在这我再重复一下。引用在定义时必须初始化,即该引用所引用的必须时确实存在的变量,不能为NULL。而指针就没有这个限制。有人说,引用就相当于一个变量的别名,对该引用所做的操作就相当于对原变量一样。我不太认同这个看法。在内部实现上,其实引用也是通过地址实现的。因此我更想称引用为一种特殊的指针。让我们看看下面这个简单的例子。#

2011-10-27 17:13:32 1954

原创 再看DXUT框架

温故而知新,前面的DXUT框架我只看了一个外壳,我觉得这次框架的亮点就在于它对于图形界面的支持。如果说Win32 API SDK中gdi部分是主旋律,那么MFC就是一个流行歌曲作家发挥之后完成的作品,而DXUT的图形框架则继承了Platform SDK中的风格,代码行间给人一种高贵的感觉。-,-扯远了,拉回来。因为gdi函数都是C API,不利于代码的重用,DXUT框架则把他们包装成了C++的

2011-10-27 16:56:39 1454

原创 STL容器和算法的函数表

该篇分为十一部分,分别是:vector类的主要成员、deque类的主要成员、list类的主要成员、   stack类的主要成员、queue类的主要成员、priority_queue类的组要成员、set类的主要成员、multiset类的主要成员、map类的主要成员、multimap类的主要成员、STL算法函数(一)vector类的主要成员vector是可变长的向量,比较灵活

2011-10-27 16:40:39 1823

原创 在MFC程序中显示JPG/GIF图像

myimgapp.zip - 298.98 KB如果你是一个使用VB编程的程序员,要在程序中显示JPG或者GIF 图像简直易如反掌,将图像控件拖到Form中,分分钟即可搞掂。但是C++程序员要显 示同样的图形却没有那么轻松,那么是不是要自己编写JPG解压缩代码呢?当然不用那么复杂啦!本文将针对这个问题讨论如何在MFC中显示JPG或者GIF 图像。 用VB写图像显示程序之

2011-10-27 10:43:37 1730

原创 让UI开发轻松而快乐,用SonicUI引擎实现常见UI效果

代码已开源到:http://www.codeproject.com/KB/GDI/SonicUI.aspx。摘要:作为windows工程师,UI开发是无可避免的工作,无论你是写一个供销存系统,还是一款聊天IM,UI开发总是会占据你大量的时间。接下来展示的将是一种windows下的非常轻松快捷的UI开发解决方案,实现大家实际工作中经常需要实现的UI特效,力争将你从繁复的UI工作中解放

2011-10-26 18:14:19 1436

原创 do...while(0)的妙用

在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。    但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在

2011-10-21 09:43:59 1099

原创 模板的一些高级主题

十一、模板与继承1、当从模板类派生出子类时必须注意的是:子类并不会从通用的模板基类继承而来,只能从基类的某一实例继承而来。这样的话就有以下几种继承方式: a、基类是模板类的一个特定实例版本,比如template class B : public A{}; b、基类是一个和子类相关的一个实例,比如template class B : public A{};

2011-10-19 22:23:34 1538

网络游戏客户端编程 随书code 全

vs2008编译, 方便下载, 是学习网络游戏编程的好的代码

2012-01-07

C++ BOOST 库中文指南

官方文档中文翻译版,亲手制作,绝对珍藏。

2010-12-22

\超级好的ogre的教程

Pro OGRE 3D Programming 中文翻译版本0.2.0

2009-11-12

数据结构实验课的全部源程序

全部程序都有顺序和链式存储两种,有线性表操作,栈队列的应用,稀疏矩阵的存储和转置,二叉树的实现和运算,线索二叉树的实现和运算,哈夫曼树的实现和运算,图的实现和运算,最小生成树,最短路径,拓扑排序,各种查找算法,各种排序算法,哈希表查找的实现和运算,下吧,疯狂的下吧,太好的资源了

2009-08-31

effective c++

c++经典著作effective c++,描述了c++在实际运用中应该遵循的一般性准则50条。

2009-08-27

清华大学c语言PPT

最全的JDK1.5帮助文档,支持类和方法的搜索。

2009-07-24

空空如也

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

TA关注的人

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