Мы взаимодействуем с некоторыми сторонними COM-объектами из приложения C++Builder 2010.
В настоящее время мы импортируем библиотеку типов и создаем оболочки компонентов, а затем можем вызывать методы и получать доступ к свойствам довольно естественным образом.
object->myProperty = 42;
object->doSomething(666);
Тем не менее, мы были укушены изменениями в интерфейсе COM-объекта (, который все еще расширяется и разрабатывается ), что приводит к сбою нашего собственного приложения, потому что некоторые идентификаторы GUID методов становятся недействительными -, даже если единственное изменение в интерфейс был дополнен новым методом ).
Позднее связывание было предложено как способ решения этой проблемы. Я думаю, что это требует изменения нашего кода примерно так:
object.OlePropertySet("myProperty", 42);
object.OlePrcedure("doSomething", 666);
Очевидно, что это больно читать и писать, поэтому вместо этого нам пришлось бы писать классы-оболочки.
Есть ли способ автоматически генерировать обертки позднего связывания при импорте библиотеки типов? И если да, то достаточно ли они умны, чтобы выполнять текстовую привязку только один раз при создании объекта, а не при каждом вызове метода?