【发布时间】:2012-07-25 02:11:40
【问题描述】:
我们正在与来自 C++Builder 2010 应用程序的一些第 3 方 COM 对象进行交互。
目前我们导入类型库并生成组件包装器,然后能够以相当自然的方式进行方法调用和访问属性。
object->myProperty = 42;
object->doSomething(666);
但是,COM 对象的接口(仍在扩展和开发中)的更改导致我们自己的应用程序失败,因为某些方法 GUID 似乎变得无效 - 即使对接口的唯一更改已经增加了一种新方法)。
已建议将后期绑定作为解决此问题的一种方式。我认为这需要更改我们的代码rather like this:
object.OlePropertySet("myProperty", 42);
object.OlePrcedure("doSomething", 666);
显然这读和写起来很痛苦,所以我们不得不编写包装类。
当我们导入类型库时,有没有办法让后期绑定包装器自动生成?而且,如果是这样,它们是否足够聪明,只在创建对象时执行一次文本绑定,而不是在每个方法调用时执行一次?
【问题讨论】:
标签: c++ com c++builder late-binding