我们正在与来自 C++Builder 2010 应用程序的一些第 3 方 COM 对象进行交互。
目前我们导入类型库并生成组件包装器,然后能够以相当自然的方式进行方法调用和访问属性。
object->myProperty = 42;
object->doSomething(666);
然而,我们已经被 COM 对象的接口(仍在扩展和开发)的变化所困扰,导致我们自己的应用程序失败,因为某些方法 GUID 似乎变得无效 - 即使接口的唯一变化是添加一种新方法)。
已建议将后期绑定作为解决此问题的一种方式。我认为这需要像这样更改我们的代码:
object.OlePropertySet("myProperty", 42);
object.OlePrcedure("doSomething", 666);
显然,这读和写起来很痛苦,所以我们不得不编写包装类。
当我们导入类型库时,有什么方法可以自动生成后期绑定包装器?而且,如果是这样,它们是否足够聪明,只在创建对象时进行一次文本绑定,而不是在每个单独的方法调用上?