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