استخدام PInvoke Explicit في ++C (سمة DllImport)

يوفر برنامج .NET Framework ميزات استدعاء (أو PInvoke) النظام الأساسي الصريح مع السمة Dllimport لتسمح للتطبيقات المدارة أن تستدعي الدوال غير المُدارة المحزمة داخل DLLs. مطلوب PInvoke صريحة للمواقف حيث يتم حزم API غير مدار كـ DLLs والتعليمات البرمجية المصدر غير متوفرة. استدعاء دوال Win32 ، على سبيل المثال، يتطلب PInvoke. وإلا، استخدم P{Invoke الضمني; راجع استخدام PInvoke) C++ Interop الضمني ) لمعلومات أكثر.

يعمل PInvoke باستخدام DllImportAttribute. يتم وضع هذه السمة ،والتي لها اسم DLL كوسيطة أولى، قبل التصريح بكل نقطة إدخال DLL سيتم استخدامها. التوقيع الرقمي للدالة يجب أن يطابق اسم الدالة المُصدرّة بواسطة DLL (ولكن يمكن تنفيذ بعض تحويل النوع ضمنيًا بواسطة تعريف تصريحات DllImport بدلالة الأنواع المدارة)

تكون النتيجة نقطة إدخال مدارة لكل دالة DLL أصلية تحتوي على التعليمات البرمجية الضرورية للانتقال (أو thunk) و تحويلات بيانات بسيطة. ثم يمكن للدالات الاستدعاء في DLL من خلال نقاط الدخول هذه. التعليمات البرمجية التي تم إدراجها في وحدة نمطية كنتيجة PInvoke تتم إدارتها بشكل كامل كما يتم يتم دعم PInvoke صريحة للتحويلات البرمجية /clr ، /clr:pure ، و /clr:safe. لمزيد من المعلومات، راجع تعليمة برمجية خالصة و قابلة للتحقق.

في هذا القسم

راجع أيضًا:

المبادئ

استدعاء الدالات الأصلية من التعليمات البرمجية المُدارة