سؤال

لقد قرأت (في نيش Sivakumar كتاب C++/CLI في العمل من بين أماكن أخرى) التي يجب أن نستخدم __clrcall الديكور على المكالمات وظيفة لتجنب مزدوجة thunking في الحالات حيث كنت أعرف أن الأسلوب أبدا أن يسمى من التعليمات البرمجية غير المدارة.نيش يقول أيضا أنه إذا كان الأسلوب توقيع يحتوي على أي CLR أنواع ، ثم التحويل البرمجي JIT سيتم تلقائيا إضافة __clrcall.ما هو غير واضح بالنسبة لي إذا كنت تحتاج إلى إدراج __clrcall عند إنشاء C++/CLI خصائص.في معنى واحد ، خصائص يمكن الوصول إليها فقط من .NET languages, من ناحية أخرى C++/CLI مترجم (على ما أظن) فقط يولد الأساليب (على سبيل المثال***_get() ) التي هي للاستدعاء من كل من التعليمات البرمجية المدارة وغير المدارة.هل أحتاج إلى استخدام __clrcall التعديل على خصائص وإذا كان الأمر كذلك أين تذهب ؟ على الحصول على/مجموعة وظائف أنفسهم ؟

هل كانت مفيدة؟

المحلول

@مايك ب - شكرا على النصيحة على ildasm - لم أكن أعرف عن هذه الأداة.

يبدو أنني أخطأت/يساء فهمها نيش - على __clrcall التعديل المزدوج thunking المشكلة أنه يزيل تنطبق فقط على أساليب الفئات الأصلي.جميع طرق تمكنت الطبقات __clrcall افتراضيا - الذي يبدو واضحا في وقت لاحق.

من الواضح ماركوس Heege كتاب الخبراء C++/CLI متاح للتنزيل مجانا, و لديها لطيفة الجدول في الصفحة 215 يلخص الاتفاقيات الدعوة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top