2010-04-06 5 views
3

J'essaie d'hériter et d'étendre une structure définie dans MIDL. J'ai utilisé la même syntaxe que pour l'héritage d'interface i.eHéritage de structure dans MIDL

typedef struct stDBIBinVarDataEx 
{ 
    float x; 
} MYSTRUCT ; 

struct struct2 : MYSTRUCT 
{ 
    float y; 
}; 

mais le compilateur génère des erreurs.

Répondre

3

Vous ne pouvez pas. MIDL n'est pas un compilateur C++.

Vous pouvez déclarer struct2 comme contenant MYSTRUCT:

struct struct2 
{ 
    MYSTRUCT mystruct; 
    float y; 
} 

Il est pas tout à fait la même chose, mais il est probablement aussi proche que vous allez obtenir.

+0

Cette approche peut être pratique mais elle pose problème lorsque vous souhaitez passer des structures plus spécialisées à des interfaces, par ex. 'Bar ([dans] MYSTRUCT s);' ne peut pas être appelé avec une instance 'struct2' (évidemment). – Carsten