com组件,dll,脚本及批处理四者之间的区别?

来源:百度知道 编辑:UC知道 时间:2024/09/25 18:32:21
能不能从编程技术的发展历史的角度说说四者产生的原因,各自的功能是为了满足哪方面的需求?

COM解决了版本问题,模块化开发,基本上能被所有语言使用,当然只能在WINDOWS平台上,DLL是其载体之一,EXE也可以作为COM载体,但是不常用,还有一种OCX也是其载体,一般用来作为activex控件的载体,activex实际上是COM的一种变体,但本质上没变,当然ACTIVEX控件也能以DLL作载体。
COM的出现的最初原因是微软为了解决能在WORD中加载EXCEL的表格的问题发明的。
普通DLL和COM一样,也是属于二进制复用,但是没COM那么彻底,没法响应消息,必须手动去调用其方法,COM调用模型中是可以影响消息的,当你调用COM的方法时,实际上是向一个隐藏窗口发送消息的,COM的同名方法会响应这个消息,所以COM和DLL最大区别是COM模型中多了一层,也就是实现响应消息的那一层,因为消息是WINDOWS本身的机制,故COM可以做到语言无关性,COM是非常复杂的,我只是说了一小部分,比如线程模型和不同的调用模型,要完全弄清楚得去打本专门讲解COM的书。

脚本字面意思就是为了解决一些简单的问题,而实际上这世界上是简单的问题居多,使用编译型语言是不划算的,比如你在命令行环境下删除一个文件,你不可能先用C写在编译在执行吧,那样多麻烦,所以UNIX/LINUX下有shell脚本,当然在图形界面下这种类型的脚本并不是显的很重要,不过现在脚本已经发展到能和编译型语言的功能匹敌了,也能解决复杂的问题。
批处理实际上就是一种脚本,是不是比图形界面处理问题更方便当然是各人的想法了,但肯定没有图形界面傻瓜化。

以上我本人的胡言乱语。希望不会误导你

我也等着看。。