كيفية القيام بما يلي: استخدم نوع أصلي في تحويل clr/ برمجيا

يمكنك تعريف نوع أصلي في التحويل البرمجي لـ /clr وأي استخدام لهذا النوع الأصلي داخل التجميع يعتبر صالحا. ومع ذلك، الأنواع الأصلية لن تكون متوفرة للاستخدام من بيانات التعريف المشار إليها.

يجب أن يحتوي كل تجميع على تعريف لكل نوع أصلي سيتم استخدامه.

لمزيد من المعلومات، راجع /clr (التجميع وقت تشغيل اللغة العامة).

مثال

ينشئ هذا النموذج مكوِّن يُعرِّف و يستخدم نوعا أصليا.

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

يُعرّف هذا النموذج العميل الذي يستهلك المكون. لاحظ أنه من الخطأ أن تحاول الوصول إلى النوع الأصلي ما لم يتم تعريفه في 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
}

راجع أيضًا:

المرجع

استخدام PInvoke) C++ Interop الضمني )