Compartilhar via


Como: Usar um tipo nativo em uma compilação/CLR

Você pode definir um tipo nativo em um /clr compilação e o uso desse tipo nativo de dentro do assembly é válido. No entanto, tipos nativo não estará disponível para uso de metadados referenciado.

Cada assembly deve conter a definição de cada tipo nativo que será usado.

Para obter mais informações, consulte o CLR (ComComummon Idioma Tempo de execução ComComumpilation).

Exemplo

Este exemplo cria um componente que define e utiliza um 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 exemplo define um cliente que consome o componente.Observe que é um erro acesso nativa digitar, a menos que ela está definida no compiland.

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

Consulte também

Referência

Usando a interoperabilidade de C++ (PInvoke implícita)