李sir_Blog

博客园 首页 联系 订阅 管理

2010年11月24日

摘要: 1、Run-Time LibraryRun-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run-Time Libraries。当然也有Standard C++ libraries。C Run-Time Libraries实现ANSI C的标准库。VC安装目录的CRT目录有C Run-Time库的大部分源代码。C ... 阅读全文
posted @ 2010-11-24 17:05 李sir 阅读(577) 评论(0) 推荐(0)

摘要: 一、综述SEH--Structured Exception Handling,是Windows操作系统使用的异常处理方式。对于SEH,有点需要说明的是,SEH是属于操作系统的特性,不为特定语言设计,但是实际上,作为操作系统的特性,几乎就等同与面向C语言设计,这点很好理解,就像Win32 API,Linux下的系统调用,都是操作系统的特性吧,实际还是为C做的。但是,作为为C语言设计的东西,实际上可调... 阅读全文
posted @ 2010-11-24 16:28 李sir 阅读(1721) 评论(0) 推荐(0)

摘要: 摘要: 本文主要对Windows内存管理中的堆管理技术进行讨论,并简要介绍了堆的创建、内存块的分配与再分配、堆的撤销以及new和delete操作符的使用等内容。关键词: 堆;堆管理  1 引言  在大多数Windows应用程序设计中,都几乎不可避免的要对内存进行操作和管理。在进行大尺寸内存的动态分配时尤其显的重要。本文即主要对内存管理中的堆管理技术进行论述。   堆(Heap)实际是位于保留的虚拟... 阅读全文
posted @ 2010-11-24 16:25 李sir 阅读(597) 评论(0) 推荐(0)

摘要: 堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(... 阅读全文
posted @ 2010-11-24 16:23 李sir 阅读(2983) 评论(0) 推荐(0)

摘要: 第一篇:typedef struct与struct的区别1. 基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。至于typedef有什么微妙之处,请你接着看下面对几个... 阅读全文
posted @ 2010-11-24 16:22 李sir 阅读(73368) 评论(6) 推荐(7)

摘要: 原文:http://www.debuginfo.com/articles/easywindbg.html译者:arhat时间:2006年4月13日关键词:CDBWinDbg导言你 钟情什么样的调试器?如果你问我这个问题,我会回答是“VisualStudio+WinDbg”。我比较喜欢VisualStudio那朴实无 华且易操作的接口,更喜欢它能迅速把我需要的信息以可视的形式... 阅读全文
posted @ 2010-11-24 16:20 李sir 阅读(745) 评论(0) 推荐(0)

摘要: Windows NT/2K/XP版本的操作系统都支持NTFS格式的文件系统,这是一个有安全性质的文件系统,你可以通过Windows的资源管理器来设置对每个目录和 文件的用户访问权限。这里我就不对NTFS的安全性进行讲述了,我默认你对NTFS的文件目录的安全设置有了一定的了解。在这里,我将向你介绍使用 Windows的API函数来操纵NTFS的文件权限。一、 理论和术语在Windows NT/2K?... 阅读全文
posted @ 2010-11-24 16:08 李sir 阅读(636) 评论(0) 推荐(0)

摘要: [前言:使用__FILE__和__LINE__来定位错误已经屡见不鲜,然而其中一些道理又有几个人仔细探究过。本文参考了Curtis Krauskopf的一篇名为Using __FILE__ and __LINE__ to Report Errors的文章,希望达到解惑之效。]问题:当运行时错误产生时,我怎样才能得到包含C++文件名和行号的字符串信息?回答:在C++中的__FILE__预编译指示器包... 阅读全文
posted @ 2010-11-24 16:05 李sir 阅读(17079) 评论(4) 推荐(2)

摘要: 1 基本解释  extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。  另外,extern也可用来进行链接指定。2 问题:extern 变量  在一个源文件里定义了一个数组:char a[6];  在另外一个文件里用下列语句进行了声明:extern char *a;  请问,这样可以吗?3 问题:extern函数1  常常见... 阅读全文
posted @ 2010-11-24 16:00 李sir 阅读(592) 评论(0) 推荐(0)

摘要: 大多程序员在学C++前都学过C,并且习惯于C风格(类型)转换。当写 C++(程序)时,有时候我们在使用static_cast<>和reinterpret_cast<>时可能会有点模糊。在本 文中,我将说明static_cast<>实际上做了什么,并且指出一些将会导致错误的情况。泛型(Generic Types) float f = 12.3; float* pf... 阅读全文
posted @ 2010-11-24 15:49 李sir 阅读(836) 评论(0) 推荐(0)

摘要: 1.引言  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程 式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支 持函数... 阅读全文
posted @ 2010-11-24 14:06 李sir 阅读(326) 评论(0) 推荐(0)

摘要: (1) 常对象用const修饰的对象叫对象常量,其格式如下:〈类名〉const 〈对象名〉 或者 const 〈类名〉〈对象名〉声明为常对象的同时必须被初始化,并从此不能改写对象的数据成员。例:分析下列错误的地方,说明理由;#include<iostream.h>class Point{ int x, y;public:Point(int a, int b) { x=a; y=b;}V... 阅读全文
posted @ 2010-11-24 14:02 李sir 阅读(2351) 评论(0) 推荐(0)

摘要: 1、内存分配方面: 堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。 栈:由编译器(Compiler)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、申请方式方面: 堆:需要程序员自己申请,并指明大小。在c中mal... 阅读全文
posted @ 2010-11-24 13:58 李sir 阅读(550) 评论(0) 推荐(0)

摘要: MFC六大关键技术(第四部分)——永久保存(串行化)先用一句话来说明永久保存的重要:弄懂它以后,你就越来越像个程序员了!如果我们的程序不需要永久保存,那几乎可以肯定是一个小玩儿。那怕我们的记事本、画图等小程序,也需要保存才有真正的意义。对于MFC的很多地方我不甚满意,总觉得它喜欢拿一组低能而神秘的宏来故弄玄虚,但对于它的连续存储(serialize)机制,却是我十分钟爱的地... 阅读全文
posted @ 2010-11-24 13:56 李sir 阅读(517) 评论(0) 推荐(1)

摘要: 三、动态创建动态创建就是运行时创建指定类的对象,在MFC中大量使用。如框架窗口对象、视对象,还有文档对象都需要由文档模板类对象来动态的创建。我觉得这是每个MFC的学习者很希望理解的问题。初次接触MFC的时候,很容易有这样的迷惘。MFC的几大类不用我们设计也就罢了,但最疑惑的是不用我们实例化对象。本来最直观的理解就是,我们需要框架的时候,亲手写上CFrameWnd myFrame;需要视的时候,亲自... 阅读全文
posted @ 2010-11-24 13:55 李sir 阅读(801) 评论(0) 推荐(0)

摘要: 追根究底,MFC六大关键技术之剖析(第二部分)小李先生二、运行时类型识别(RTTI)运行时类型识别(RTTI)即是 程序执行过程中知道某个对象属于某个类,我们平时用C++编程接触的RTTI一般是编译器的RTTI,即是在新版本的VC++编译器里面选用“使能 RTTI”,然后载入typeinfo.h文件,就可以使用一个叫typeid()的运算子,它的地位与在C++编程中的siz... 阅读全文
posted @ 2010-11-24 13:52 李sir 阅读(384) 评论(0) 推荐(0)

摘要: 发现Win7下的一些EXE文件图标莫名奇妙丢失,但功能却正常,在网上搜索了一下,原来是图标缓存的问题,应该是Win7的bug。"%userprofile%\AppData\Local\IconCache.db"根据网上提示方法,输入下列命令:在命令提示符下输入下列命令即可恢复。taskkill /im explorer.exe /fcd /d %userprofile%\appdata\local... 阅读全文
posted @ 2010-11-24 12:54 李sir 阅读(1215) 评论(0) 推荐(1)

摘要: 相关链接: http://www.codeproject.com/KB/combobox/listview.aspx CodeProject是个非常不错的网站,让我们可以吸收外国同行的编程经验。Win32 SDK利用ListView控件。为了使用ListView控件,我们需要初始化公共控件库,我们需要在程序刚刚启动时调用InitCommonControls() 函数,如果发生链接错误,说明我们没有... 阅读全文
posted @ 2010-11-24 09:29 李sir 阅读(5837) 评论(0) 推荐(0)