Procedura: utilizzare un tipo nativo in una compilazione /clr
È possibile definire un tipo nativo in una compilazione /clr e qualsiasi uso di tale tipo nativo dall'interno dell'assembly è valido. Tuttavia, i tipi nativi non saranno disponibili per l'uso da metadati a cui si fa riferimento.
Ogni assembly deve contenere la definizione di ogni tipo nativo che userà.
Per altre informazioni, vedere /clr (Compilazione Common Language Runtime).
Esempi
Questo esempio crea un componente che definisce e usa 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);
}
};
Questo esempio definisce un client che utilizza il componente. Si noti che si tratta di un errore per accedere al tipo nativo, a meno che non sia definito nel 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
}
Vedi anche
Uso delle funzionalità di interoperabilità C++ (PInvoke implicito)