Comment : utiliser un type natif dans une compilation /clr
Vous pouvez définir un type natif dans une compilation /clr et toute utilisation de ce type natif à partir de l’assembly est valide. Toutefois, les types natifs ne seront pas disponibles pour une utilisation à partir de métadonnées référencées.
Chaque assembly doit contenir la définition de chaque type natif qu’il utilisera.
Pour plus d’informations, consultez l’article /clr (Compilation pour le Common Language Runtime).
Exemples
Cet exemple crée un composant qui définit et utilise un type natif.
// 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);
}
};
Cet exemple définit un client qui consomme le composant. Notez qu’il s’agit d’une erreur d’accès au type natif, sauf si elle est définie dans la compilation.
// 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
}