摘要:
在我那篇《浅析C++中的this指针》中,我通过分析C++代码编译后生成的汇编代码来分析this指针的实现方法。这次我依然用分析C++代码编译后生成的汇编代码来说明C++中虚函数调用的实现方法,顺便也说明一下C++中的对象内部布局。下面所有的汇编代码都是用VC2005编译出来的。虽然,不同的编译器可能会编译出不同的结果,对象的内部布局也不尽相同;但是,只要是符合C++标准的编译器,编译结果和对象的... 阅读全文
摘要:
很多人都知道Linux系统的安全性比微软Windows系统更高。但是,为什么会是这样?这种说法到底有没有道理?却很少有人能回答得出来。 为了搞清楚这个问题,首先,我们必须要明确“安全性”的定义。其实,绝大多数人都犯了同样一个错误,那就是孤立地认为某个产品比较安全。比如,Linux系统要比微软Windows系统更加安全;或是,开放源代码的Firefox网络浏览器要比微软IE浏览器更加安全。不、不... 阅读全文
摘要:
理解虚函数( virtual function )的几个关键点: 1. 理解早绑定(early binding)、晚绑定(late binding)。所谓early binding:On compile time,就能明确一个函数调用是对哪个对象的哪个成员函数进行的,即编译时就晓得了确定的函数地址;所谓late binding:On compile time,对函数(虚函数)的调用被搞... 阅读全文
摘要:
分区原则 不管使用哪种分区软件,我们在给新硬盘上建立分区时都要遵循以下的顺序:建立主分区→建立扩展分区→建立逻辑分区→激活主分区→格式化所有分区(图1)。 激活主分区:当硬盘上同时建有主分区和扩展分区时,必须将主分区激活,否则硬盘就会无法引导系统(提示:operation system not found)。 阅读全文
摘要:
四个主要类 (1)类CMYAPP 类CMYAPP是应用程序运行的基础,这个类是由MFC中的类CWINAPP派生来的。在这个类中除了有一般类都有的构造函数,一个重要的成员函数就是INITINSTANCE,我们知道,在Windows环境下面可以运行同一程序的多个实例,函数INITINSTANCE的作用就是在生成一个新的实例的时候,完成一些初始化的工作。 下面研究INITINSTANCE函数所做的事情,... 阅读全文
摘要:
Windows程序工作原理 Windows程序设计是一种完全不同于传统的DOS方式的程序设计方法,它是一种事件驱动方式的程序设计模式。在程序提供给用户的界面中有许多可操作的可视对象。用户从所有可能的操作中任意选择,被选择的操作会产生某些特定的事件,这些事件发生后的结果是向程序中的某些对象发出消息,然后这些对象调用相应的消息处理函数来完成特定的操作。Windows应用程序的最大特点就是程序没有固定的... 阅读全文
摘要:
Visual C++ 6.0集成开发环境中可使用的资源还有菜单、加速键、串表、位图、图标、对话框等。在图5-1所示的“Insert Resource”对话框中,给出了程序开发中可供使用的资源。 图5-1 集成开发环境中的资源 资源的导入与导出 在某些情况下,我们还会用到除开发环境提供的资源以外的其他资源。Visual C++ 6.0集成开发环境允许我们将其他资源导入或导出。 在图5-1所示的... 阅读全文