Поделиться через


Ошибка компилятора C3136

"interface": COM-интерфейс может наследоваться только от другого COM-интерфейса, "интерфейс" не является COM-интерфейсом.

Интерфейс, к которому применен атрибут интерфейса, наследуется от интерфейса, который не является COM-интерфейсом. Интерфейс COM в конечном счете наследует от IUnknown. Любой интерфейс, предшествующий атрибуту интерфейса, является COM-интерфейсом.

В следующем примере создается C3136:

// C3136.cpp
#include "unknwn.h"

__interface A   // C3136
// try the following line instead
// _interface A : IUnknown
{
   int a();
};

[object]
__interface B : A
{
   int aa();
};