下载本文示例代码
介绍 对于许多人来说,学习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) |