Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16498502
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:32:11

下载本文示例代码
  介绍  对于许多人来说,学习COM和DCOM是一件吃力的事情。COM的用处很大,不少微软的产品和编程者工具都是基于COM,不过,COM是一门颇难掌握的技术,你可能曾经想去学习它,阅读过一些书,使用过一些向导等,不过还是不太懂。它看来很复杂,而且还带有不少的新名词,例如"marshalling", "apartment threads", "singleton objects" 等,让你摸不着头脑。  这篇指南的目的是帮助你快速理解DCOM的基本要素,并且可以很容易地创建COM客户和服务器。读完这几篇指南后,你将会发现如果有一个好的开始,学习DCOM是一件非常简单的事情。以下是本指南的目录:  COM的基本要素--要学好它,就从这里开始吧  简单的COM客户--介绍简单的COM客户  简单的COM服务器--使用ATL向导来建立一个服务器  下载工程文件  *****下载BeepClient工程文件(9KB)  *****下载BeepServer工程文件(17KB)  COM的基本要素  首先要弄懂COM是怎样工作的。为什么这个工作是首要的呢?因为COM使用它自己专有的词汇。第二个原因是COM包含有不少的新概念。要掌握这些词汇和概念,最简单的其中一个方法是将COM对象和普通的C 对象作比较,并且比较它们的相似和不同之处。你还可以将COM的一些概念映射到标准的C 模型中去,这样就可以用你已经熟悉的东西来理解新概念。我们首先介绍一些COM的基本概念,接着,你就可以很容易地理解后面的例子。  一、类和对象  假设你在C 中创建了一个称为xxx的简单类。它有几个成员函数,称为MethodA, MethodB和MethodC。每个成员函数可接收参数,并返回一个结果。该类的定义如下所示: class xxx {public:int MethodA(int a);int MethodB(float b);float MethodC(float c);};  在需要使用类的时候,你必须创建该对象的一个实例。实例是真实的对象;类只是定义。每个对象可作为一个变量(本地或者全局)创建,或者可使用new声明动态地创建。new声明可动态创建变量并返回指向它的一个指针。你可通过该指针来调用成员函数,例如:  xxx *px; // 指向xxx类的指针  px = new xxx; // 创建对象  px->MethodA(1); // 调用方法  delete px; // 释放对象  你要明白到,COM使用相同的面向对象模型。COM拥有与C 对象一样的类、成员函数和实例。虽然你从来不会在一个COM对象上调用new方法,不过你必须在内存中创建它。你通过指针来访问COM对象,在你完成处理后,你必须释放它们。  写COM的代码时,我们将不会使用上面的new和delete。虽然我们将使用C 作为开发语言,不过我们将要使用全新的语法。COM是通过调用COM API来实现的,这些API提供创建和破坏COM对象的函数。以下就是一个用pseudo-COM代码写的COM程序例子:  ixx *pi // 指向to xxx COM接口的指针  CoCreateInstance(,,,,&pi) // 创建接口  pi->MethodA(); // 调用方法  pi->Release(); // 释放接口  在这个例子中,我们将称类ixx是一个“接口”。变量pi是指向接口的一个指针。CoCreateInstance方法可创建一个ixx的实例。接口的指针是用来作方法调用的。Release用来删除接口。  为了突出该程序的要点,我故意忽略了CoCreateInstance的一些参数。CoCreateInstance可接收多个参数,每个参数都需要更深入的探讨才可以了解。现在,我们首先回过头来看看COM的一些主要方面。共4页。 1 2 3 4 :   介绍  对于许多人来说,学习COM和DCOM是一件吃力的事情。COM的用处很大,不少微软的产品和编程者工具都是基于COM,不过,COM是一门颇难掌握的技术,你可能曾经想去学习它,阅读过一些书,使用过一些向导等,不过还是不太懂。它看来很复杂,而且还带有不少的新名词,例如"marshalling", "apartment threads", "singleton objects" 等,让你摸不着头脑。  这篇指南的目的是帮助你快速理解DCOM的基本要素,并且可以很容易地创建COM客户和服务器。读完这几篇指南后,你将会发现如果有一个好的开始,学习DCOM是一件非常简单的事情。以下是本指南的目录:  COM的基本要素--要学好它,就从这里开始吧  简单的COM客户--介绍简单的COM客户  简单的COM服务器--使用ATL向导来建立一个服务器  下载工程文件  *****下载BeepClient工程文件(9KB)  *****下载BeepServer工程文件(17KB)  COM的基本要素  首先要弄懂COM是怎样工作的。为什么这个工作是首要的呢?因为COM使用它自己专有的词汇。第二个原因是COM包含有不少的新概念。要掌握这些词汇和概念,最简单的其中一个方法是将COM对象和普通的C 对象作比较,并且比较它们的相似和不同之处。你还可以将COM的一些概念映射到标准的C 模型中去,这样就可以用你已经熟悉的东西来理解新概念。我们首先介绍一些COM的基本概念,接着,你就可以很容易地理解后面的例子。  一、类和对象  假设你在C 中创建了一个称为xxx的简单类。它有几个成员函数,称为MethodA, MethodB和MethodC。每个成员函数可接收参数,并返回一个结果。该类的定义如下所示: class xxx {public:int MethodA(int a);int MethodB(float b);float MethodC(float c);};  在需要使用类的时候,你必须创建该对象的一个实例。实例是真实的对象;类只是定义。每个对象可作为一个变量(本地或者全局)创建,或者可使用new声明动态地创建。new声明可动态创建变量并返回指向它的一个指针。你可通过该指针来调用成员函数,例如:  xxx *px; // 指向xxx类的指针  px = new xxx; // 创建对象  px->MethodA(1); // 调用方法  delete px; // 释放对象  你要明白到,COM使用相同的面向对象模型。COM拥有与C 对象一样的类、成员函数和实例。虽然你从来不会在一个COM对象上调用new方法,不过你必须在内存中创建它。你通过指针来访问COM对象,在你完成处理后,你必须释放它们。  写COM的代码时,我们将不会使用上面的new和delete。虽然我们将使用C 作为开发语言,不过我们将要使用全新的语法。COM是通过调用COM API来实现的,这些API提供创建和破坏COM对象的函数。以下就是一个用pseudo-COM代码写的COM程序例子:  ixx *pi // 指向to xxx COM接口的指针  CoCreateInstance(,,,,&pi) // 创建接口  pi->MethodA(); // 调用方法  pi->Release(); // 释放接口  在这个例子中,我们将称类ixx是一个“接口”。变量pi是指向接口的一个指针。CoCreateInstance方法可创建一个ixx的实例。接口的指针是用来作方法调用的。Release用来删除接口。  为了突出该程序的要点,我故意忽略了CoCreateInstance的一些参数。CoCreateInstance可接收多个参数,每个参数都需要更深入的探讨才可以了解。现在,我们首先回过头来看看COM的一些主要方面。共4页。 1 2 3 4 : 下载本文示例代码


分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘分布式组件对象模型DCOM揭秘
阅读(297) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~