使用巧妙的接口指针调用COM对象

ZDNet软件频道 时间:2000-07-03 作者:Dale Rogerson |  我要评论()
本文关键词:
介绍利用接口指针调用COM对象的方法

我不喜欢巧妙的接口指针类的原因

我为什么不打算使用巧妙的指针类有几点原因。所有这些理由的要点是CsmartInterface并不象C++。在一个对象上使用操作符->而不是指向对象的指针,这真的很奇怪。

一个相关的原因是使用指向CsmartInterface的指针并不直截了当--事实上它非常混乱。我的绝大部分组件对象模型使用隐藏的接口指针的容器,而且接口的生命周期也很少被限制在函数的范围内。我为一个接口调用QueryInterface,把它存储在容器里,使用它,最后释放它--所以这些都来自我的代码中的不同地方。使用这种结构类型,我需要分配和释放栈上的巧妙接口,而这就象我在前面章节中说明的那样非常混乱。

一个C++的程序员可能要删除一个接口指针,而一个组件对象模型(COM)程序员则可能要释放一个CsmartInterface对象。没有什么方便的方法可以阻止这一点。所以,我们的解决方法已经替换了一个带有类似相等问题的问题。当然,至少目前为止,C++程序员的人数还是要比组件对象模型(COM)程序员的人数要多。

我已经决定使用接口包装代替巧妙的接口指针。在我的"用接口包装调用组件对象模型(COM)对象"一文中对接口包装进行了描述。

总结

巧妙的接口指针是一种强有力的技术,它使得用组件对象模型(COM)对象工作更为简单并且更加bug_free。不过,我发现巧妙的接口指针是一种非常奇怪的东西。他们既不是纯粹的指针也不是纯粹的对象。他们也不能象我所期望的那样适合我的应用程序结构。不过,我还是强烈建议你试试在你的应用程序里使用巧妙的接口指针,看看他们是如何为你工作的。他们可能只是你需要让你的应用程序更快且问题更少地技巧而已。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134