Cómo: Utilizar un tipo nativo en una compilación con /clr

Actualización: noviembre 2007

Puede definir un tipo nativo en una compilación con /clr y cualquier uso de ese tipo nativo desde dentro del ensamblado será válido. Sin embargo, los tipos nativos no estarán disponibles para su uso desde los metadatos a los que se hace referencia.

Cada ensamblado debe contener la definición de cada tipo nativo que utilice.

Para obtener más información, vea /clr (Compilación de Common Language Runtime).

Ejemplo

Este ejemplo crea un componente que define y utiliza un tipo nativo.

// 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);
   }
};

Este ejemplo define un cliente que utiliza el componente. Observe que es un error para tener acceso al tipo nativo, a menos que se defina en el compilando.

// 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
}

Vea también

Referencia

Utilizar la interoperabilidad de C++ (PInvoke implícito)