Я пытался скомпилировать сгенерированные файлы IDL из Rhapsody 7.1.1 с последней версией TAO IDL Compiler (выпущенная версия пакета 6.0.2), но я получаю некоторые ошибки, потому что анонимные типы устарели в CORBA 3.1. *
Этот тип ошибок может быть подавлен с помощью параметра "-as" TAO IDL Compiler. Но из соображений обслуживания я хочу создать совместимые файлы IDL.
Кроме того, я получаю другие ошибки от компилятора TAO IDL, связанные с переадресацией интерфейса. Эти сгенерированные файлы IDL компилируются правильно до версии 5.7.9 TAO (1.7.9).
Отредактировано:
Основная проблема с переадресацией интерфейса состоит в том, что пересылка уже определенного интерфейса скрывает содержимое такого интерфейса.
Пример:
A.idl
interface A {
typedef long my_long_type;
};
B.idl
#include "A.idl"
interface A;
interface B {
typedef A::my_long_type my_b_long; // Error with TAO versions greater than 5.7.9
};
Если я удаляю форвард А, проблем не возникает, но я не могу, потому что таким образом файлы RL создаются с помощью Rhapsody.