自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

转载 Windows界面——使用Custom Draw优雅的实现ListCtrl的重绘

使用Custom Draw优雅的实现ListCtrl的重绘 common control 4.7版本介绍了一个新的特性叫做Custom Draw,这个名字显得模糊不清,让人有点摸不着头脑,而且MSDN里也只给出了一些如风的解释和例子,没有谁告诉你你想知道的,和究竟这个特性

2011-08-12 08:23:52 323

转载 c++对数组的引用

所谓数组引用,即指向数组的引用;如 int a[10] ;  int (&b)[10] = a ;如果写成 int a[10] ;   int* &b = a ;将会报错: cannot convert from 'int [10]' to 'int *&'。  或许你会说在数组名不就是指向这个数组的一个指针吗?题中a是int*类型的,b是指向int*的引用,按理应该是正确的啊,为什么会报错呢?这是因为编译器对指向数组的引用检查

2011-04-14 08:33:00 398

转载 温故而知新,学习MFC框架如何创建的过程

<br /><br />很久没有使用MFC了,以至于都忘记MFC框架复杂的窗口、文档、视的创建过程了。<br />下面我们跟踪一个MFC MDI的应用程序,来温习或学习一下。<br /> <br />使用AppWizard创建一个MDI应用程序,我创建的应用程序叫MDITest,这样MFC生成了如下的类:<br /> <br />类名<br />作用<br />CMDITestApp<br />派生于CWinApp的应用程序类。<br />CMainFrame<br />派生于CMDIFrameWnd的MD

2011-03-28 15:55:00 271

转载 继续学习MFC——有关外壳图标处理过程

<br /><br />找了一本《MFC技术内幕》的书,英文名MFC Black Book,老美Al Williams写的,很早以前写的啦。不管怎样,让我来学习吧。<br /> <br />从最后一章,哦,是附录A学起吧。<br />附录A有关外壳图标处理过程<br /> <br />Windows的外壳设计者让我们能够通过注册表、COM对象来扩展外壳,知道这一点,我们才能决定是否通过一个外壳来实现我们的某种需求。<br /> <br />下表列出外壳扩展的种类:(我喜欢表格)<br />名称<br />描

2011-03-28 15:52:00 582

转载 继续学习MFC——有关外壳图标处理过程

<br /><br />找了一本《MFC技术内幕》的书,英文名MFC Black Book,老美Al Williams写的,很早以前写的啦。不管怎样,让我来学习吧。<br /> <br />从最后一章,哦,是附录A学起吧。<br />附录A有关外壳图标处理过程<br /> <br />Windows的外壳设计者让我们能够通过注册表、COM对象来扩展外壳,知道这一点,我们才能决定是否通过一个外壳来实现我们的某种需求。<br /> <br />下表列出外壳扩展的种类:(我喜欢表格)<br />名称<br />描

2011-03-28 15:52:00 638

转载 继续学习MFC——第11章多线程技术

<br /><br />要知道MFC类一般不是线程安全的,这点要时刻牢记。<br /> <br />书中前两个小节简单说了一下进程和线程:<br />对于Windows平台,进程简而言之就是一个应用程序,线程实际上是处理器寄存器的一个映像。线程包括应用程序在哪儿执行代码和线程的本地变量等信息。进程可以有多个线程,共享该进程中的全局变量和资源,但是拥有各自的执行点和本地变量。<br /> <br /> <br />MFC里面用CWinThread对象表示所有线程。CWinApp恰好从CWinThread派生,

2011-03-28 15:51:00 756

转载 继续学习MFC——第9章MFC和Interne

<br /><br />在这一章的前面数个小节先简单介绍了一下Internet的基本知识,我想这些不需要太多去描述和学习了。<br /> <br />下面该书讨论CSocket, CAsyncSocket,并给出了一个小小的两人网络战场游戏,通过Socket相互连接。这里对Socket说明的实在甚少,让我自己去看看文档,深入MFC源代码去看看吧。<br /> <br /> <br />下面给出CSocket的类简化定义,此定义来自afxsock.h:<br />class CSocket : public

2011-03-28 15:48:00 644

转载 编译Lua库并配置开发环境

<br /><br />要在自己的程序中使用Lua,我们必须将Lua解释器核心编译到自己的程序中来,无论是直接编译到主程序中,还是作为外部DLL调用,总之,第一件事情是编译Lua解释器核心。<br />说明:以后的操作如果没有特别注明,就是在Windows平台上进行的。<br />首先,到Lua官方网站下载最新的Lua源代码,得到的是一个.tar.gz。可以用流行的压缩软件如WinZip,WinRAR,或者开源的7z(推荐使用)来解开。解开的目录中有一个src目录,整个Lua核心代码就在这里了。<br />

2011-03-24 18:20:00 354

转载 十招教你学会软件破解(转

<br />下面谈到了一些在学习解密过程中经常遇到的问题,本人根据自己的经验简单给大家谈一谈。这些问题对于初学者来说常常是很需要搞明白的,根据我自己的学习经历,如果你直接照着很多破解教程去学习的话,多半都会把自己搞得满头的雾水,因为有很多的概念要么自己不是很清楚,要么根本就不知道是怎么一回事,所以希望通过下面的讨论给大家一定的帮助: <br /><br />  1. 断点:所谓断点就是程序被中断的地方,这个词对于解密者来说是再熟悉不过了。那么什么又是中断呢?中断就是由于有特殊事件(中断事件)发生,计算机暂停

2011-03-23 22:46:00 516

转载 十招教你学会软件破解(转

<br />下面谈到了一些在学习解密过程中经常遇到的问题,本人根据自己的经验简单给大家谈一谈。这些问题对于初学者来说常常是很需要搞明白的,根据我自己的学习经历,如果你直接照着很多破解教程去学习的话,多半都会把自己搞得满头的雾水,因为有很多的概念要么自己不是很清楚,要么根本就不知道是怎么一回事,所以希望通过下面的讨论给大家一定的帮助: <br /><br />  1. 断点:所谓断点就是程序被中断的地方,这个词对于解密者来说是再熟悉不过了。那么什么又是中断呢?中断就是由于有特殊事件(中断事件)发生,计算机暂停

2011-03-23 22:43:00 336

转载 C++中的动态多维数组

<br /><br />转:http://www.yesky.com/25/165025.shtml<br />前言]C++的new操作符是该语言一个非常好的语法特性,然而实际使用中却发现new操作符有不少限制,为突出的一点便是用new操作符分配多维数组空间时,不能让数组的每一维都动态可变。本文将对此提出一个简单直观的解决方案,在一个实际问题的简化模型中加以说明,并以此释清许多初学者对C++中new操作符与多维数组的误区。<br /><br />  1. 问题的提出--多维可变数组的实际用途<br /><b

2011-03-23 22:35:00 198

转载 初学者必备:教你理解复杂的C/C++声明

<br />初学者必备:教你理解复杂的C/C++声明     <br />曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的“右左法则”。需要强调一下的是,复杂的C/C++声明并不是好的编程风格;这里仅仅是教你如何去理解这些声明。<br />

2011-03-23 21:49:00 205

转载 typedef用法详解

<br /> <br />typedef的一般形式为:<br />typedef   类型     定义名;<br /> <br />在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。<br /> <br />其实,在C语言中声明变量的时候,有个存储类型指示符(storage-class-specifier),它包括我们熟悉的extern、static、auto、register。在不指定存储类型指示符的时候,编译器会根据约定自动取缺省值。

2011-03-23 21:26:00 900

转载 #pragma 预编译指令

<br />在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。 <br /><br />#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。 <br /><br />依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。  <br /><br />    其格式一般为: #pragma  para <br /><br />    其中para为参数,下面来看

2011-03-23 21:09:00 274

空空如也

空空如也

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

TA关注的人

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