COM应用软件开发技术

1.COM技术概述

COM表示Component Object Model(组件对象模型),它是Microsoft大力推广的软件开发技术。采用COM规范开发的应用软件具有强大的功能,主要有如下几点:

◆COM是二进制编程规范,可以编写被多种语言使用的代码。

◆用于创建ActiveX控件。

◆通过OLE Automation 控制其它的程序。

◆与其它机器上的对象或程序进行对话,构成分布式应用程序。

Microsoft推出Windows 98和Windows NT 5.0后,整个操作系统的核心都围绕着COM来建立。我们可以把Windows系统看作是一系列的COM接口,在需要是可以调用这些接口。如DirectX就是一系列的COM接口服务程序,通过它可以进行高性能的Windows图形程序设计。

用COM技术开发的应用程序从理论上说是客户/服务器模式的程序。程序员可以使用一系列的COM服务程序来构造他们自己的应用程序,这些服务程序可以根据需要随时嵌入到主程序中。在分布式系统中,可以通过网络来访问这些服务程序。将来,操作系统和整个网络可能会被看作是一套以COM对象形式提供的服务集。一部分程序员负责建立这些服务,而另一部分程序员只负责如何调用它们。其目的是实现软件的即插即用。

开发COM应用程序是比较复杂的,通常需采用ActiveX模板库(ATL)来编程。在这里我们推荐采用C++ Builder来开发COM程序,Inprise(Borland)公司的面向对象技术一直处于世界领先水平,C++ Builder采用可视化方法,隐藏了ATL的实现细节,自动生成COM接口所需的代码。

以下的程序举例采用C++ Builder 4.0 编制,在中文Windows98环境下运行。

2.建立COM服务程序

COM服务程序有三种形式,第一种是驻留在本地机器上以DLL形式提供,该服务程序被调用时,嵌入到调用程序的线程中运行;第二种是驻留在本地机器上以EXE形式提供,该服务程序被调用时将占用独立的线程运行;第三种驻留在远端机器上以EXE形式提供,服务程序通过网络被调用,它在远端机器上运行,结果通过网络返回调用者。

在此采用第一种形式建立COM服务程序,这也是最常用的形式,DirectX就是采用这种形式提供的。

C++ Builder建立COM服务程序的方法如下:

2.1创建支持COM接口对象的动态连接库文件:

◆打开File/New/ActiveX项目页,选择ActiveX Library;

◆选择Save All 将项目以PCOMServer文件名保存;此时C++ Builder 自动生成如下的文件:

PCOMServer.bpr:工程的项目文件;

PCOMServer.h,PCOMServer.cpp:支持COM对象的动态连接库源文件,其中有许多函数用于COM接口对象的自动装配,大家不用去编辑它们;

PCOMServer_ATL.h,PCOMServer_ATL.cpp:ATL形式的文件供C++ Builder编译器调用,大家也不要去编辑它们。

◆打开Project/Options/Linker 属性页不选中Use dynamic RTL选项,打开Project/Options/Packages属性页不选中Builder with runtime packages选项,这两步操作可以使开发的COM动态连接库不依赖C++ Builder的VCL动态连接库,有利于独立发行,但在一般情况下还是建议选中这两项。

时间: 2024-09-24 13:56:42

COM应用软件开发技术的相关文章

Web开发技术发展史话

web  讨论Web开发技术的历史,当然要先说说Web的起源.众所周知,Web这个Internet上最热门的应用架构是由Tim Berners-Lee发明的.Web的前身是1980年Tim Berners-Lee负责的Enquire(Enquire Within Upon Everything的简称)项目.1990年11月,第一个Web服务器nxoc01.cern.ch开始运行,Tim Berners-Lee在自己编写的图形化Web浏览器"WorldWideWeb"上看到了最早的Web

.NET架构的核心开发技术

架构 不可否认,应用软件的开发正在经历一次巨变--将最终增强开发人员的生产力并开启一道通向全新概念的应用程序的大门. 新型的开发模式正逐渐被推广,将分发软件演变成一种服务还有待于所有开发人员的共同努力,而互联网却将彻底改变应用程序的开发模式和配置方式. 传统上,软件开发人员通过集成本地系统服务的方式开发应用程序.这种模型使开发人员有权使用一整套丰富的开发资源,精确控制应用程序的性能. 如今,开发人员在很大程度上已挣脱了这种模式的束缚,致力于构建具有复杂结构的n层系统,这种系统能将网络中各处的众多

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.2节Android平台的特点及未来的趋势

1.2 Android平台的特点及未来的趋势 Android 3D游戏开发技术宝典--OpenGL ES 2.0 Android平台基于Linux,其不仅继承了Linux的各种优良特性,同时由于"Android之父"Andy Rubin的先进理念,使得Android平台又增加了许多非常具有吸引力的新特性.这不仅给终端用户带来了非凡的体验,还大大减轻了Android应用开发者的工作量与难度. 1.2.1 全新理念带来的体验风暴 Android是具有开源性质的手机终端解决方案,开发人员可以

软件就是实力 Palm新应用软件开发工具即将上线

Palm在纽约举行的开发者大会刚刚结束,他为大家展示了下一阶段Palm即将采用的应用软件开发架构:http://www.aliyun.com/zixun/aggregation/16536.html">Enyo.这一架构基于本地硬件加速并且具有更快的程序加载速度,它很快就将取代现有的Mojo架构. Palm新应用开发工具Enyo即将上线 Palm新应用开发工具Enyo即将上线 在新的Enyo架构下,软件的开发速度将得到大大提升,因为开发者无需再根据不同的屏幕尺寸,为一款软件开发多个版本,这

AJAX开发技术在PHP开发中的简单应用技巧_AJAX相关

[AJAX介绍] Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法.Web页面不用打断交互流程进行重新加裁,就可以动态地更新.使用Ajax,用户可以创建接近本地桌面应用的直接.高可用.更丰富.更动态的Web用户界面. 异步JavaScript和XML(AJAX)不是什么新技术,而是使用几种现有技术--包括级联样式表(CSS).JavaScript. XHTML.XML和可扩展样式语言转换(XSLT),开发外观及操作类似桌面软件的Web应用软件. [AJAX执行原理] 一个Aja

052_《Delphi网络应用开发技术与实例》

<Delphi网络应用开发技术与实例> Delphi 教程 系列书籍 (052) <Delphi网络应用开发技术与实例> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf 作者: 黄超 罗宏宇等 丛书名: 程序开发人员进阶与提高黑皮书 出版社:清华大学出版社 ISBN:7900641386 上架时间:2002-3-29 出版日期:2002 年3月 页码:576 版次:1-1 内容简介 2001年4月,Borland已经正式发布了Delphi 6.0,

《Cocos2D-X游戏开发技术精解》一1.6 技术文档

1.6 技术文档 Cocos2D-X游戏开发技术精解前面的章节内容,曾介绍了两个包含引擎的技术文档的地方,细心的读者一定会留有印象.在引擎的官方网站,提供了在线版本的API指南.以防读者忘记了,下面列出的网址就是访问路径. http://www.cocos2d-x.org/reference/native-cpp/index.html 在引擎的下载包中也提供了技术文档.不过,技术文档的内容其实包含在代码中,读者需要一个工具才能生成网页版本.这个工具就是Doxygen.它是一个C++.C.Java

AJAX开发技术在PHP开发中的简单应用技巧

[AJAX介绍] Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法.Web页面不用打断交互流程进行重新加裁,就可以动态地更新.使用Ajax,用户可以创建接近本地桌面应用的直接.高可用.更丰富.更动态的Web用户界面. 异步JavaScript和XML(AJAX)不是什么新技术,而是使用几种现有技术--包括级联样式表(CSS).JavaScript. XHTML.XML和可扩展样式语言转换(XSLT),开发外观及操作类似桌面软件的Web应用软件. [AJAX执行原理] 一个Aja

项目开发学习-房地产合同管理系统的开发技术

问题描述 房地产合同管理系统的开发技术 基于java编程语言的做一个房地产合同管理的系统能用到哪些开发技术?其中对于合同创建模块又可以用到哪些技术?其中它还可以用到哪些最新的开发技术?请给予详细的说明,谢谢! 解决方案 用哪个开发框架,什么数据库,安全性要高,这些都是很重要的,详情请加我.qq399151732