Dela via


Gör så här: Använda en inbyggd typ i en kompilering med /clr

Du kan definiera en intern typ i en /clr-kompilering och all användning av den interna typen inifrån sammansättningen är giltig. Interna typer är dock inte tillgängliga för användning från refererade metadata.

Varje sammansättning måste innehålla definitionen för varje inbyggd typ den ska använda.

Mer information finns i /clr (Common Language Runtime Compilation).

Exempel

Det här exemplet skapar en komponent som definierar och använder en intern typ.

// use_native_type_in_clr.cpp
// compile with: /clr /LD
public struct NativeClass {
   static int Test() { return 98; }
};

public ref struct ManagedClass {
   static int i = NativeClass::Test();
   void Test() {
      System::Console::WriteLine(i);
   }
};

Det här exemplet definierar en klient som använder komponenten. Observera att det är ett fel att komma åt den inbyggda typen, om den inte definieras i compilandet.

// use_native_type_in_clr_2.cpp
// compile with: /clr
#using "use_native_type_in_clr.dll"
// Uncomment the following 3 lines to resolve.
// public struct NativeClass {
//    static int Test() { return 98; }
// };

int main() {
   ManagedClass x;
   x.Test();

   System::Console::WriteLine(NativeClass::Test());   // C2653
}

Se även

Använda C++ Interop (implicit PInvoke)