ما هي وظيفة الفعلية من إعداد مشروع # C "السماح كود غير آمنة"

StackOverflow https://stackoverflow.com/questions/233759

سؤال

وكنت أتساءل إذا كان C # project وضع "يسمح بتنفيذ التعليمات البرمجية غير آمنة" ينطبق فقط على غير آمنة C # رمز في المشروع نفسه، أم أنه من الضروري وضع هذا الخيار عند ربط في DLL الأصلي C ++؟ ماذا عن ربط في DLL المدارة التي تربط نفسها إلى DLL الأصلي؟ ماذا يعني هذا الخيار تفعل حقا، تحت غطاء محرك السيارة؟

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

المحلول

وعليها أن تفعل مع الكلمة "غير آمنة" في C #. "غير آمنة" إيقاف جميع الشيكات التي يمكن أن يحدث بشكل طبيعي ويسمح لك الوصول مباشرة إلى الذاكرة. أنه لا يشير إلى الدعوة ++ DLL الأصلي C أو واجهات.

نصائح أخرى

وانها تسمح لك لاستخدام كتلة "غير آمنة".

unsafe(...)
{
}

وهذا يتعلق فقط إلى استخدام كتل unsafe (حيث مؤشرات يمكن استخدامها). ولا تحكم P / استدعاء.

ولها من الضروري استخدام سياق غير آمنة {}. كان عليه أن تكون هناك حاجة لاستخدام sizeof () ولكن في الإصدارات الأحدث التي لم يعد صحيحا.

وأنت لا تحتاج إلى تعليمات برمجية غير آمنة إذا كنت externing إلى DLL آخر مكتوب بلغة أخرى مثل C.

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