选择显示字体大小

分布式组件对象模型dcom揭秘


  介绍

  对于许多人来说,学习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的一些主要方面。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons