2010-04-06 10 views
3

Я пытаюсь наследовать и расширять структуру, определенную в MIDL. Я использовал тот же синтаксис, что и для наследования интерфейсов i.eНаследование структуры в MIDL

typedef struct stDBIBinVarDataEx 
{ 
    float x; 
} MYSTRUCT ; 

struct struct2 : MYSTRUCT 
{ 
    float y; 
}; 

, но компилятор генерирует ошибки.

ответ

3

Вы не можете. MIDL не является компилятором C++.

Вы можете объявить Struct2, как содержащего MyStruct:

struct struct2 
{ 
    MYSTRUCT mystruct; 
    float y; 
} 

Это не совсем то же самое, но это, вероятно, так близко, как вы собираетесь получить.

+0

Этот подход может пригодиться, но является проблематичным, если вы хотите передать более специализированные структуры интерфейсам, например. 'Bar ([in] MYSTRUCT s);' нельзя вызывать с помощью 'struct2'-instance (очевидно). – Carsten