自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

原创 C++从零开始(十二)——何谓面向对象编程思想

C++从零开始(十二) ——何谓面向对象编程思想     前面已经说明了C++中最重要的概念——类,并且介绍了大部分和类相关的知识,至此,已经可以开始做些编程方面比较高级的应用——设计程序,而不再只是将算法变成代码。要说明如何设计程序,有必要先了解何谓编程思想。编程思想    编程,即编写程序,而之前已经说过,程序就是方法的描述,那么编程就是编写方法的描述。我知道如何到人民公园

2004-08-15 16:53:00 5937 16

原创 C++从零开始(十一)下篇——类的相关知识

C++从零开始(十一)下篇 ——类的相关知识     由于篇幅限制,本篇为《C++从零开始(十一)》的下篇,讨论多态性及一些剩下的问题。 虚的含义     本文的中篇已经介绍了虚的意思,就是要间接获得,并且举例说明电视机的频道就是让人间接获得电视台频率的,因此其从这个意义上说是虚的,因为它可能操作失败——某个频道还未调好而导致一片雪花。并且说明了间接的好处,就是只用编好一段代码(按5频道),

2004-07-28 02:57:00 2694 4

原创 C++从零开始(十一)中篇——类的相关知识

C++从零开始(十一)中篇 ——类的相关知识     本文关于虚函数的论述有一处严重错误,关于此错误已在本文的评论中说明,对此造成的不便,在此深感抱歉。    由于篇幅限制,本篇为《C++从零开始(十一)》的中篇,说明多重继承、虚继承和虚函数的实现方式。多重继承    这里有个有趣的问题,如下:    struct A { long a, b, c; char d; };

2004-07-27 12:52:00 2734

原创 C++从零开始(十一)上篇——类的相关知识

C++从零开始(十一)上篇 ——类的相关知识     前面已经介绍了自定义类型的成员变量和成员函数的概念,并给出它们各自的语义,本文继续说明自定义类型剩下的内容,并说明各自的语义。 权限     成员函数的提供,使得自定义类型的语义从资源提升到了具有功能的资源。什么叫具有功能的资源?比如要把收音机映射为数字,需要映射的操作有调整收音机的频率以接收不同的电台;调整收音机的音量;打开和关闭收音机

2004-07-25 17:20:00 3304 3

原创 C++从零开始(十)——何谓类

C++从零开始(十) ——何谓类     前篇说明了结构只不过是定义了内存布局而已,提到类型定义符前还可以书写class,即类型的自定义类型(简称类),它和结构根本没有区别(仅有一点小小的区别,下篇说明),而之所以还要提供一个class,实际是由于C++是从C扩展而成,其中的class是C++自己提出的一个很重要的概念,只是为了与C语言兼容而保留了struct这个关键字。不过通过前面括号中所

2004-07-25 17:18:00 2834 6

原创 C++从零开始(九)——何谓结构

C++从零开始(九) ——何谓结构     前篇已经说明编程时,拿到算法后该干的第一件事就是把资源映射成数字,而前面也说过“类型就是人为制订的如何解释内存中的二进制数的协议”,也就是说一个数字对应着一块内存(可能4字节,也可能20字节),而这个数字的类型则是附加信息,以告诉编译器当发现有对那块内存的操作语句(即某种操作符)时,要如何编写机器指令以实现那个操作。比如两个char类型的数字

2004-07-17 14:32:00 3249 6

原创 C++从零开始(八)——C++样例一

C++从零开始(八) ——C++样例一     前篇说明了函数的部分实现方式,但并没有说明函数这个语法的语义,即函数有什么用及为什么被使用。对于此,本篇及后续会零散提到一些,在《C++从零开始(十二)》中再较详细地说明。本文只是就程序员的基本要求——拿得出算法,给得出代码——给出一些样例,以说明如何从算法编写出C++代码,并说明多个基础且重要的编程概念(即独立于编程语言而存在的概念)。 由算

2004-07-14 14:55:00 3238 7

原创 C++从零开始(七)——何谓函数

C++从零开始(七) ——何谓函数     本篇之前的内容都是基础中的基础,理论上只需前面所说的内容即可编写出几乎任何只操作内存的程序,也就是本篇以后说明的内容都可以使用之前的内容自己实现,只不过相对要麻烦和复杂许多罢了。    本篇开始要比较深入地讨论C++提出的很有意义的功能,它们大多数和前面的switch语句一样,是一种技术的实现,但更为重要的是提供了语义的概念。所以,本篇开始将

2004-07-11 21:42:00 3776 13

原创 C++从零开始(六)——何谓语句

C++从零开始(六) ——何谓语句     前面已经说过程序就是方法的描述,而方法的描述无外乎就是动作加动作的宾语,而这里的动作在C++中就是通过语句来表现的,而动作的宾语,也就是能够被操作的资源,但非常可惜地C++语言本身只支持一种资源——内存。由于电脑实际可以操作不止内存这一种资源,导致C++语言实际并不能作为底层硬件程序的编写语言(即使是C语言也不能),不过各编译器厂商都提供了自己的嵌

2004-07-07 20:20:00 2866 10

原创 C++从零开始(五)——何谓指针

C++从零开始(五) ——何谓指针  (本文由于为初次书写,思考不全,容易引起概念混乱,不建议阅读,请另参看《指针及其语义和运用》)    本篇说明C++中的重中又重的关键——指针类型,并说明两个很有意义的概念——静态和动态。数组    前面说了在C++中是通过变量来对内存进行访问的,但根据前面的说明,C++中只能通过变量来操作内存,也就是说要操作某块内存,就必须先

2004-07-07 20:18:00 3418 6

原创 C++从零开始(四)——赋值操作符

C++从零开始(四) ——赋值操作符     本篇是《C++从零开始(二)》的延续,说明《C++从零开始(二)》中遗留下来的关于表达式的内容,并为下篇指针的运用做一点铺垫。虽然上篇已经说明了变量是什么,但对于变量最关键的东西却由于篇幅限制而没有说明,下面先说明如何访问内存。 赋值语句     前面已经说明,要访问内存,就需要相应的地址以表明访问哪块内存,而变量是一个映射,因此变量名就相当于一

2004-07-07 20:16:00 3007 9

原创 C++从零开始(三)——何谓变量

C++从零开始(三) ——何谓变量     本篇说明内容是C++中的关键,基本大部分人对于这些内容都是昏的,但这些内容又是编程的基础中的基础,必须详细说明。 数字表示     数学中,数只有数值大小的不同,绝不会有数值占用空间的区别,即数学中的数是逻辑上的一个概念,但电脑不是。考虑算盘,每个算盘上有很多列算子,每列都分成上下两排算子。上排算子有2个,每个代表5,下排算子有4个,每个代表1(这

2004-07-07 20:14:00 3380 7

原创 C++从零开始(二)——何谓表达式

C++从零开始(二) ——何谓表达式     本篇是此系列的开头,在学英语时,第一时间学的是字母,其是英语的基础。同样,在C++中,所有的代码都是通过标识符(Identifier)、表达式(Expression)和语句(Statement)及一些必要的符号(如大括号等)组成,在此先说明何谓标识符。标识符    标识符是一个字母序列,由大小写英文字母、下划线及数字组成,用于标识。

2004-07-07 20:12:00 3346 2

原创 C++从零开始(一)——何谓编程

C++从零开始(一) ——何谓编程 引言     曾经有些人问我问题,问得都是一些很基础的问题,但这些人却已经能使用VC编一个对话框界面来进行必要的操作或者是文档/视界面来实时接收端口数据并动态显示曲线(还使用了多线程技术),却连那些基础的问题都不清楚,并且最严重的后果就是导致编写出拙劣的代码(虽然是多线程,但真不敢恭维),不清楚类的含义,混杂使用各种可用的技术来达到目的(连用异常代替选择语

2004-07-07 20:09:00 5152 24

原创 COM样例(二)——样例结构设计

COM样例(二)——样例结构设计    本文为《COM样例》系列文章的第二篇,说明样例的结构,解释COM的编程思想,并帮助理解样例代码。样例目标    欲给一个公司做一个信息管理系统,也就是公司中所有部门的信息可以被输入电脑,并可进行分布式查询,即总经理可随时查询最新的订单情况和出货情况。由于使用COM作为此信息管理系统的基架,可以很容易的解决分布式问题,并且由于COM对安全的

2004-05-19 13:18:00 1577 1

原创 COM深入理解(下)——方法参数类型为CRuntimeClass*、void*等

COM深入理解(下) ——方法参数类型为CRuntimeClass*、void*等     本文上篇已经说明了类对象实际是一个结构实例,并且为了实现进程间传递类对象指针以达到引用的目的,需要为此类专门编写一个代理类,并在传递时例示(即实例化)其一个对象以实现代理对象。而此代理类必定分成两部分,即一部分的成员函数专门在客户进程被调用,另一部分专门在组件进程被调用以实现进程间的数据传递进而

2004-05-01 21:25:00 2018 1

原创 COM样例(三)——组件端代码

COM样例(三) ——组件端代码     本文为此系列文章的重点,前面设计的接口都只是辅助性质,与COM线程模型没有一点关系。由于客户和和组件实现的接口IModule、IModuleSite等都包有界面的传递,出于利用MFC的界面包装功能而都使用MFC来实现,故全部运行在STA套间中,并可使得组件的窗口亦使用客户端主线程来派送消息。    假设调用远程组件的方法以实现业务逻辑,由于

2004-05-01 21:21:00 1631

原创 COM深入理解(上)——方法参数类型为CRuntimeClass*、void*等

COM深入理解(上) ——方法参数类型为CRuntimeClass*、void*等     经常见到论坛上有问如何传递void*或一个自定义类,如:class CA; CA*等。本文就COM的运作方式说明如何传递一自定义类对象的指针,并澄清MIDL的作用,以说明其并不是必须的。注意,本文所说的自定义类型传递与自动化技术(基于IDispatch)中的自定义结构的传递不是同一个概念,没有任

2004-04-28 22:53:00 1985 1

原创 COM样例(四)——客户端代码

COM样例(四) ——客户端代码     本文为此系列文章的最后一篇,罗列客户端的源代码。客户端使用MFC实现,其中的框架类CMainFrame实现了IModuleSite、IErrorReport和ICompanyInfo,而另一个窗口包装类CTaskManager实现ITaskManager,并由CMainFrame聚合它以表现出CMainFrame实现了ITaskManager。

2004-04-26 11:52:00 2409 26

原创 COM样例(一)——《COM线程模型》基础篇

COM样例(一) ——《COM线程模型》基础篇     我曾经写了一篇《COM线程模型》,受到一些好评,但也有部分人觉得其有些深,希望能提供一些基础点的文章。本系列文章是《COM线程模型》这篇文章的样例,提供一个简单的稍完整的例子以帮助理解前面文章中的内容。本文是此系列的第一篇,讲解《COM线程模型》中出现过的我以为可能需要说明的基础概念,在后继的文章中说明样例的结构,并给出相关各部分代码,以注

2004-04-26 10:57:00 2383 1

原创 MFC界面包装类(多线程时成员函数调用的断言失败)

MFC界面包装类 ——多线程时成员函数调用的断言失败     经常在论坛上看到如下的问题:DWORD WINAPI ThreadProc( void *pData )  // 线程函数(比如用于从COM口获取数据){    // 数据获取循环    // 数据获得后放在变量i中    CAbcDialog *pDialog = reinterpret_cast( pData );   

2004-03-29 10:39:00 2289

编程的一般通用概念

年初给公司里做的一个培训的ppt,很多年没来过CSDN了,放上来,有兴趣的就随便看看了。

2013-09-09

《COM样例》相关的样例

《COM样例》系列文章中相关的样例的执行程序

2009-02-27

《COM样例》相关的样例源码

《COM样例》系列文章中相关的样例的源代码

2009-02-27

空空如也

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

TA关注的人

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