نظرة عامة حول إمكانية التشغيل التفاعلي (دليل البرمجة لـ #C)

يقوم الموضوع بوصف الأساليب لتمكين إمكانية التشغيل التفاعلي بين تعليمات #C البرمجية المدارة والغير مُدارة.

استدعاء النظام الأساسي

استدعاء النظام الأساسي عبارة عن خدمة تمكن التعليمات البرمجية من استدعاء الدوال الغير مدارة التي تم تطبيقها في مكتبات الارتباط الحيوي (DLLs) ، مثل تلك الموجودة في Microsoft Win32 API. تحدد موقع ثم تستدعي دالة تم تصديرها لتنظيم وإرسال الوسيطات الخاصة بها (أعداد صحيحة وسلاسل وصفائف وبنيات ... إلخ) عبر حدود التبادل حسب الحاجة.

للمزيد من المعلومات، راجع التي تستخدم دالات DLL غير المُدارة وكيفية القيام بما يلي: استخدام استدعاء النظام الأساسي لتشغيل ملف Wave (دليل البرمجة لـ #C).

ملاحظة

يدير وقت تشغيل اللغة الموحدة (CLR) الوصول إلى موارد النظام. استدعاء التعليمات البرمجية الغير مُدارة التي تكون خارج CLR تتجاوز آلية الأمان هذه وبالتالي تقدم خطراً على الأمان. على سبيل المثال، قد تستدعي التعليمات البرمجية الغير مُدارة الموارد في التعليمات البرمجية الغير مُدارة مباشرة متجاوزتاً آليات أمان CLR. للحصول على معلومات أكثر، راجع ‎.NET Framework Security.

C++ Interop

يمكنك استخدام ++interop C والتي تعرف أيضاً باسم "إنها فقط تعمل" (IJW) للالتفاف حول فئة ++C أصلية بحيث يتم استهلاكها بواسطة التعليمات البرمجية التي تم تصنيعها في #C أو لغة أخرى من .NET Framework. للقيام بذلك، قم بكتابة تعليمات برمجية لـ ++C للالتفاف حول مكتبة ارتباط حيوي (DLL) أو مكون COM. على عكس لغات .NET Framework الأخرى، لدى Visual C++ دعم إمكانية التشغيل التفاعلي التي تمكن التعليمات البرمجية المُدارة والغير مُدارة بأن تكون موجوده في نفس التطبيق وفي نفس الملف أيضاً. ثم تقوم ببناء التعليمات البرمجية لـ ++C باستخدام مُبدّل /clr لبرنامج التحويل البرمجي لإنتاج تجميع مُدار. وأخيراً، قم بإضافة مرجع للتجميع في مشروع #C الخاص بك وقم باستخدام الكائنات الملتفة تماماً كاستخدامك للفئات المدارة الأخرى.

للمزيد من المعلومات، راجع كيفية: التفاف فئة الأصلي للاستخدام بواسطة C#‎ وباستخدام Interop C++ (PInvoke الضمني).

عرض مكونات COM إلى #C

يمكنك استهلاك مكونات COM من مشروع #C. الخطوات العامة كما يلي:

  1. حدد مكون COM ثم قم باستخدامه وتسجيله. استخدم regsvr32.exe لتسجيل أو عدم تسجيل DLL COM.

  2. قم بإضافة مرجع إلى مكون COM أو مكتبة أنواع.

    عند إضافة المرجع، يقوم Visual Studio باستخدام Tlbimp.exe (مستورد مكتبة الأنواع) وهو يأخذ مكتبة الأنواع كإدخال لإخراج تجميع توافق .NET Framework. التجميع المسمى بـ runtime callable wrapper (RCW) يحتوي على فئات وواجهات مدارة تقوم بالالتفاف حول فئات وواجهات COM الموجودة في مكتبة الأنواع. يضيف Visual Studio مرجعاً إلى تجميع مُولّد في المشروع.

  3. قم بإنشاء مثيل من فئة تم تعريفها في RCW. يقوم ذلك بإنشاء مثيل لكائن COM.

  4. استخدم الكائن تماماً كما تستخدم الكائنات المدارة الأخرى. عند التخلص من الكائن عن طريق تجميع البيانات المهملة يتم أيضاً التخلص من مثيل كائن COM من الذاكرة.

لمزيد من المعلومات، راجع عرض مكونات COM إلى .NET Framework.

تعريض #C إلى COM

يمكن لعملاء COM استهلاك أنواع #C المعروضة بشكل صحيح. الخطوات الأساسية لعرض أنواع #C كما يلي:

  1. قم بإضافة سمات interop في مشروع #C.

    يمكنك جعل COM للتجميع مرئي عن طريق تعديل #Visual C خصائص المشروع. لمزيد من المعلومات، راجع مربع حوار معلومات التجميع.

  2. قم بإنشاء مكتبة أنواع COM وتسجيله لاستخدام COM.

    يمكنك تعديل خصائص مشروع #Visual C لتسجيل تجميع #C لتوافق COM بشكل تلقائي. يقوم Visual Studio باستخدام مُبدّل سطر أوامر Regasm.exe (أداة تسجيل التجميع) /tlb لتأخذ تجميع مدار كإدخال لإنشاء مكتبة أنواع. تقوم مكتبة الأنواع بوصف أنواع public في التجميع ثم يقوم بإضافة إدخالات السجل بحيث يمكن لعملاء COM إنشاء فئات مدارة. لمزيد من المعلومات، راجع كيفية القيام بما يلي: تسجيل المكوّن لـ توافق COM.

للمزيد من المعلومات، راجع تعريض .NET Framework مكونات COM وفئة COM المثال (البرمجة C# إرشادات).

راجع أيضًا:

المبادئ

دليل البرمجة لـ #C

موارد أخرى

التنظيم والإرسال بين التعليمات البرمجية المدارة والغير مدارة

التفاعل مع برمجية غير مُدارة

إمكانية التشغيل المتداخل COM المتقدمة

Interoperability in the .NET Compact Framework