随笔分类 - [03]【COM编程】
摘要:【1】静态链接 静态链接是指由链接器在链接时将库的内容加入到可执行程序中的做法。 链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。 函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。 在使用静态库的情况下,在编译链接可执行文件时,链接器从库
阅读全文
摘要:【1】客户为什么不应直接控制组件的生命期? 假设一个组件A正在使用另一个组件B,可想组件A(客户)代码中肯定有若干个指向组件B接口的指针。 那么这种情况下,当使用完一个接口而仍然在使用另一个接口时,是不能将组件释放掉的。 而且很难知道两个接口指针是否指向同一组件,因此决定何时可以安全的释放一个组件将
阅读全文
摘要:【1】IUnknown接口 客户同组件交互都是通过接口完成的。 在客户查询组件的其它接口时,也是通过接口完成的。而那个接口就是IUnknown。 IUnknown接口的定义包含在Win32SDK中的UNKNEN.h头文件中。引用如下: 【2】COM接口内存结构 所有的COM接口都继承自IUnknow
阅读全文
摘要:【1】接口 DLL的接口是它所输出的那些函数。 C++类的接口是该类的一个成员函数集。 COM接口是包含一个函数指针数组的内存结构。 每一个数组元素包含的是一个由组件所实现的函数的地址。 在COM中接口就是一切。对于客户而言,一个组件就是一个接口集。 客户只能通过接口才能同COM组件打交道。 对程序
阅读全文
摘要:【1】组件产生的背景 一个应用程序通常是由单个二进制文件组成的。 当应用程序版本发布后一般不会发生任何变化,对于操作系统、硬件以及客户需求的改变都必须要等到修复源代码后且整个应用程序被重新编译才可处理。 很显然这种状况极不理想。矛盾总是推动事物向前发展的源动力。 当人们认识到应用程序在发行之后不应该
阅读全文
摘要:所谓COM,英文为Componet Object Model,中文为组件对象模型(其实这种解释只有在考试卷上才具有一点实际意义)。 【1】为什么需要COM? COM是为了解决OLE问题而产生的。COM与OLE的关系类似于微积分与物理的问题。 实际上牛顿当年就是为了解决物理中的机械及动力学问题而发明微
阅读全文