Udostępnij przez


Błąd kompilatora C3808

"type" : klasa z atrybutem ComImport nie może zdefiniować składowej "składowej", dozwolone są tylko funkcje abstrakcyjne lub dllimport

Uwagi

Typ pochodzący z elementu ComImportAttribute nie może zdefiniować elementu członkowskiego.

Opcje kompilatora /clr:pure i /clr:safe są przestarzałe w programie Visual Studio 2015 i nieobsługiwane w programie Visual Studio 2017.

Przykład

Poniższy przykład generuje kod C3808.

// C3808.cpp
// compile with: /c /clr:pure user32.lib
using namespace System::Runtime::InteropServices;

[System::Runtime::InteropServices::ComImportAttribute()]
ref struct S1 {
   int f() {}   // C3808
   virtual int g() abstract;   // OK

   [DllImport("msvcrt.dll")]
   int printf(System::String ^, int i);   // OK
};