WEB开发网
开发学院软件开发VC 《COM技术内幕》FAQ 阅读

《COM技术内幕》FAQ

 2006-07-21 11:45:54 来源:WEB开发网   
核心提示:读书问题一:“自动化在许多不同的方面用开发人员编写的代码来代替编译器生成的代码......” 请问这句话如何理解?(第11章,分发接口与自动化,《COM技术内幕》FAQ,P231)答:这句话大意是说:我们原先所写的应用,都是源码一级,是ActiveX运行的基础,就象是在刚才的圈子里撑起了个钢丝,

读书问题一:“自动化在许多不同的方面用开发人员编写的代码来代替编译器生成的代码......” 请问这句话如何理解?(第11章,分发接口与自动化,P231)

答:这句话大意是说:我们原先所写的应用,都是源码一级,需要经过编译器编译,才能执行,现在,用脚本语言来操作自动化接口,可以动态的完成相同的应用(其实是解释执行)。

一个简单的例子,你肯定没有Word的源码,如果你想用Word来生成一个针对具体应用领域(比方说政府公文)的应用,你只能找有源码的公司来修改源码,以适应你的特殊需要。(微软听你的?)

但是,你可以用自动化接口来定制你的特定应用,用VBA脚本来控制Word的自动化接口就可以完成。是的,解释执行是慢了些,但是,对你来说不用改源码,不用再去测试你修改的源码部分,不是更好吗?

读书问题二:“若C++程序员想在运行时从头开始构造一个vtbl,那他可以完全自行决定如何构造。另一方面......” 这段话应如何理解?(第11章,分发接口与自动化,P234)

答:是的,一个VTBLE的生成是由你所用的编译器替你完成的,但是,如果你明白了 vtbl的构造过程,你可以仿制一个出来。建议读:《COM本质论》+《Inside C++ Object Model》,要有很好的心理准备,啃硬骨头。

读书问题三:OleInitialize 和 CoInitialize(Ex)这两个函数有什么区别?

P236倒数第六行有对OleInitialize的调用

答:CoInitialize以及CoInitializeEx 是用来初始化COM运行环境的,就象练武的人在练武前先划了个圈,在圈里摆上了兵器。

OleInitialize是初始化Ole的运行环境,Ole是在COM的基础上作的扩展,是ActiveX运行的基础。就象是在刚才的圈子里撑起了个钢丝,要表演钢丝上的表演一样。

1 2  下一页

Tags:COM 技术 内幕

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接