Inheritance MIDL中的结构继承

Inheritance MIDL中的结构继承,inheritance,struct,idl,midl,Inheritance,Struct,Idl,Midl,我试图继承和扩展MIDL中定义的结构。我使用了与接口继承相同的语法,即 typedef struct stDBIBinVarDataEx { float x; } MYSTRUCT ; struct struct2 : MYSTRUCT { float y; }; 但是编译器会产生错误。您不能。MIDL不是C++编译器。 您可以将struct2声明为包含MYSTRUCT: struct struct2 { MYSTRUCT mystruct; float

我试图继承和扩展MIDL中定义的结构。我使用了与接口继承相同的语法,即

typedef struct stDBIBinVarDataEx
 {
   float x;
 } MYSTRUCT ;

struct struct2 : MYSTRUCT
 {
   float y;
 };

但是编译器会产生错误。

您不能。MIDL不是C++编译器。 您可以将struct2声明为包含MYSTRUCT:

struct struct2
{
    MYSTRUCT mystruct;
    float y;
}

这不是完全相同的事情,但它可能是你将要得到的最接近的东西。

这种方法可能很方便,但当你想将更专门的结构传递给接口时,就会出现问题,例如,
Bar([in]MYSTRUCT s)struct2
-实例调用code>(显然)。