当前位置:首页> PHP教程> PHP入门
关键字
文章内容
PHP高级技巧全放送
 
 
修改时间:[2012/03/22 12:08]    阅读次数:[1133]    发表者:[起缘]
 
概述

PC机自从诞生以来硬件经历了无数变化CPU从最初的INTEL 8086到
现在PIII满大街都是也只不过十几年。微软的WINDOWS操作系统从最初的
1.0版本到现在即将推出WIN2000一直是桌面系统上装机量最大的OS。
作为软件开发人员使用着包括Visual BasicVisual C++Delphi包
括最新的Borland C++ builder等等在内的众多开发环境为WINDOWS开发
应用程序。应该说现在的开发条件和若干年以前比已经是大大的进步了。
如果你开发过16位的WINDOWS程序你可能知道为了读取一个文件
们不得不使用一小段汇编来调用DOS例程或者使用当时WINDOWS尚未公开
的函数_lopen()。在win32环境下你所要做的全部是调用
: :CreateFile()来获得一个文件句柄当然如果使用MFC或是OWL之类的
东西你可以更简单的做到。不过一般情况下程序员仍然不得不从头
开始写编写应用程序的每一行代码。
但这种情况得到了改变微软提出了C O MComponent Object Model
中文也可以译作"组件对象模型"概念并且在最新的WINDOWS95/98以
及WIN NT4中越来越广泛的使用它我们有理由相信在不久的将来C O M
将成为构建应用程序最普遍的方法如果你对此技术有兴趣不妨参考本
希望从中你能学到想知道的知识。如果你已经是C O M老手也欢迎
你批评指正


本文是针对C++程序员写的。在介绍概念的时候我尽量不把WIN32 API
的知识混合进来以便你能够更清晰的看到C O M的本质。所有的例子都
用Microsoft Visual C++5(SP3)编译通过。
一般的讲一个应用程序总是由单个的二进制文件组成。在以前如果
这个程序需要做一些改进就要修改源代码然后编译声称新的文件
然后取代原来的文件。现在我们用一种全新的角度来看问题把原先一
整个的EXE可执行文件分割成功能不同但相对独立的几个部分把他
们拼装起来组成程序组成软件。在未来程序发布以后如果意识到需
要对他进行修改只要替换有问题的或是需要升级的组建就可以了。甚至
可以做到再不影响程序正常运行的情况下替换其中的部件。如果你熟悉
WINDOWS编程可能会想到DLL似乎就是你所说的东西可以动态下
态连接。事实上COM正是充分利用了Win32 DLL的灵活性才得以真正在
Windows平台上实现的。
这样做有哪些优点呢首先用户一般希望能够定制所用的应用程序
而组件技术从本质上讲就是可被定制的因而用户可以用更能满足他们需
要的某个组件来替换原来的那个。其次由于组件是相对应用程序独立的
部件我们可以在不同的程序中使用同一个组件而不会产生任何问题
件的可重用性将大大的得到增强。第三随着网络带宽及其重要性的提高
分布式网络应用程序毫无疑问的成为软件市场上越来越重要的买点。组件
价构可以使得开发这类应用程序的过程得以简化。
那么COM到底是什么呢它是一个说明如何建立可动态互变组件的规范。
他定义了一些为保证能互操作客户一个术语指需要某种组件的程序
组件必须遵循的标准COM规范就是一套为组件架构设置标准的文档形
式的规范。COM的发布形式是以win32动态链接库(DLL)或者可执行文件
EXE)的形式发布的可执行代码组成。
COM组件是动态连接的而且COM组件是完全与语言无关的。同时COM组
件可以以二进制的形式发布。COM组件还可以在不妨碍老客户的情况下被升
级成新的版本。
你现在可以认为COM所能提供的服务有些类似C++中的类。不过类是基
于源代码的COM则不是。不过这里要澄清一些关于COM的错误观点首先
COM不是一种计算机语言。把COM同某种计算机语言如C++, VB相比较是
没有意义的。其次也不要把DLL和COM做比较因为COM技术正是利用了
DLL的动态链接能力才得以实现的而现在一般观点则认为利用DLL动态
链接能力最佳的方法是COM。