Позднее связывание COM-объектов с помощью C++Builder

Мы взаимодействуем с некоторыми сторонними COM-объектами из приложения C++Builder 2010.

В настоящее время мы импортируем библиотеку типов и создаем оболочки компонентов, а затем можем вызывать методы и получать доступ к свойствам довольно естественным образом.

object->myProperty = 42;
object->doSomething(666);

Тем не менее, мы были укушены изменениями в интерфейсе COM-объекта (, который все еще расширяется и разрабатывается ), что приводит к сбою нашего собственного приложения, потому что некоторые идентификаторы GUID методов становятся недействительными -, даже если единственное изменение в интерфейс был дополнен новым методом ).

Позднее связывание было предложено как способ решения этой проблемы. Я думаю, что это требует изменения нашего кода примерно так:

object.OlePropertySet("myProperty", 42);
object.OlePrcedure("doSomething", 666);

Очевидно, что это больно читать и писать, поэтому вместо этого нам пришлось бы писать классы-оболочки.

Есть ли способ автоматически генерировать обертки позднего связывания при импорте библиотеки типов? И если да, то достаточно ли они умны, чтобы выполнять текстовую привязку только один раз при создании объекта, а не при каждом вызове метода?

5
задан Roddy 26 July 2012 в 13:17
поделиться