/clr (التحويل البرمجي وقت تشغيل اللغة العامة)

يمكّن التطبيقات والمكونات من إستخدام ميزات من وقت تشغيل اللغة العامة (CLR).

/clr[:options]

الوسيطات

  • options
    واحد أو المزيد مفاتيح التبديل التالية، مفصولة بفواصل.

    • /clr
      ينشئ بيانات التعريف للتطبيق. يمكن أن تكون المستهلكة من قبل تطبيقات غير ذلك CLR بيانات التعريف، وقم بتمكين تطبيق إلى تستهلك أنواع والبيانات في بيانات التعريف الأخرى مكونات CLR.

      لمزيد من المعلومات، راجع <link href="Messenger_PROC_ConfigureYourBrowser"></link>.

      التجميعات مختلط (الأصلي و مدارة)

      كيفية: ترحيل /clr.

    • /clr:pure
      ينتج Microsoft Office 2010 Suite المتوسطة لغة (MSIL)-فقط ملف الإخراج قد لا الأصلي تنفيذي تعليمات برمجية. ومع ذلك، يمكن أن يتضمن أنواع الأصلية التي تم تحويلها برمجياً إلى MSIL.

      لمزيد من المعلومات، راجع خالص أو Verifiable رمز.

    • /clr:safe
      ينتج MSIL فقط (لا يوجد أصلي ترميزًا قابلاً للتنفيذ)، verifiable إخراج الملف. /clr:safeتمكين التحقق من التشخيص ( أداة PEVerify (Peverify.exe)).

      لمزيد من المعلومات، راجع كتابة Verifiably رمز نوع آمن.

    • /clr:oldSyntax
      تمكين "الملحقات التي تمت إدارتها" لبناء جملة C + +، الذي هو الأصلي Visual C++بناء جملة برمجة CLR.

      مدارة ملحقات لبناء الجملة C + + هو مهمل. استخدام /clr:oldSyntaxفقط إذا الذي يتم الحفاظ تطبيق الذي يستخدم "ملحقات التي تمت إدارتها" C + +. إذا كنت تقوم بتطوير تطبيق جديد، استخدم بناء الجملة المحدثة. لمزيد من المعلومات، راجع Language Features for Targeting the CLR.

      إذا كان لديك "الملحقات التي تمت إدارتها" للتطبيق C + +، يمكنك ترقية مشروع إلى استخدم بناء جملة جديدة. لمزيد من المعلومات، راجع ترقية و ترقية البرامج.

    • /clr:noAssembly
      تعين التي تجميع بيان يجب أن لا يمكن إدراجها في ملف الإخراج. بشكل افتراضي، noAssemblyخيار هو ليس في التأثير.

      noAssemblyخيار هو مهمل. استخدم /LN (إنشاء MSIL وحدة نمطية?)بدلاً منه. لمزيد من المعلومات، راجع خيارات المحول البرمجي مهملة في Visual C++ 2005.

      برنامج مدارة يحتوي على بيانات تعريف تجميع في ملف البيان هو تعرف على وحدة نمطية . noAssemblyيمكن استخدام خيار فقط إلى إنتاج وحدة نمطية. إذا قمت بترجمة باستخدام /c و /clr:noAssembly، قم بتحديد /NOASSEMBLY خيار في مرحلة الرابط إلى إنشاء وحدة نمطية.

      قبلVisual C++ 2005,/clr:noAssemblyimplied**/clr**. على الرغم من ذلك، /clrكما يدعم الآن /clr:oldSyntax, لذلك يجب تحديد /clrالنموذج عند تعيين /clr:noAssembly. For example, /clr:noAssembly /clr creates a module by using the new Visual C++ CLR syntax and /clr:noAssembly,oldSyntax creates a module by using Managed Extensions for C++‎.

      قبلVisual C++ 2005,/clr:noAssemblyمطلوب**/LD**. /LDهو الآن مضمنة عند تحديد**/clr:noAssembly**.

    • /clr:initialAppDomain
      تمكن Visual C++تطبيق إلى تعمل على الإصدار 1 من CLR. إذا كنت استخدم initialAppDomain، ثم قد تشاهد بعض المشكلات التي تمت مناقشتها في خطأ: استثناء AppDomainUnloaded عندما كنت استخدم مدارة ملحقات ل مكونات Visual C + + تشغيل موقع "الويب الخاص بدعم Microsoft Office 2010 Suite".

      تطبيق الذي تم تحويله برمجياً باستخدام initialAppDomainيجب إلا يتم استخدام بواسطة أحد تطبيقات التي تستخدم ASP.NET لأنه غير معتمد في الإصدار 1 من CLR.

    • /clr:nostdlib
      توجيه المحول البرمجي إلى تجاهل direcإلىry\clr الافتراضي. المحول البرمجي بإنشاء أخطاء إذا كانت هي ما في ذلك إصدارات متعددة من مكتبة ارتباط حيوي مثل النظام.dll. استخدام هذا خيار يسمح لك بتعيين إطار عمل معين سيتم استخدامها أثناء التحويل البرمجي.

ملاحظات

تعليمات برمجية مُدارة هو التعليمة البرمجية التي يمكن أن يتم فحصها وإدارتها بواسطة CLR. مدارة يمكن الوصول إلى تعليمات برمجية مدارة الكائنات. لمزيد من المعلومات، راجع /clr القيود.

لمعلومات حول كيفية إلى تطوير التطبيقات التي تقوم بتعريف واستهلاك الأنواع المدارة، راجع Language Features for Targeting the CLR.

تطبيق التحويل البرمجي باستخدام /clrقد أو قد لا يحتوي على مدارة بيانات.

إلى تمكين تصحيح أخطاء في تطبيق تتم إدارته، راجع /ASSEMBLYDEBUG (إضافة DebuggableAttribute).

إنشاء مثيل أنواع CLR فقط في كومة ذاكرة مؤقتة تجميع البيانات المهملة. لمزيد من المعلومات، راجع Classes and Structs (Managed). التحويل البرمجي لإحدى الدالات ل تعليمة برمجية أصلية، استخدم unmanagedpragma. لمزيد من المعلومات، راجع managed, unmanaged.

بشكل افتراضي, /clr لن يتم تنفيذه. عند /clrهو، /MDهو أيضا في التأثير. لمزيد من المعلومات، راجع /MD،/MT،/LD (استخدم وقت التشغيل مكتبة). /MDتؤكد أنه تم محدد الإصدارات المرتبطة بشكل حيوي، ذات مؤشرات ترابط متعددة من الإجراءات وقت التشغيل من الملفات القياسية عنوان (.h). متعدد العمليات هو المطلوبة لإدارة البرمجة لأن يعمل حاوي المهملات CLR finalizers في مؤشر ترابط المساعد.

إذا قمت بتجميع باستخدام /c، يمكنك تحديد نوع CLR (IJW الأمن أو خالص) إخراج الناتج ملف مع /CLRIMAGETYPE .

/clrيتضمن**/EHa**، و غير ذلك لا**/EHيتم اعتماد خيارات من أجل/clr**. لمزيد من المعلومات، راجع /EH (طراز معالجة ‏‏ استثناء).

لمعلومات حول كيفية إلى تحديد نوع CLR نسخة من ملف، راجع /clrheader.

يجب أن يتم التحويل البرمجي لالجميع الوحدات النمطية التي تم تمريرها إلى استدعاء معطى من الرابط بواسطة استخدام نفس خيار المترجم مكتبة وقت التشغيل ( /MDأو /LD).

استخدام /ASSEMBLYRESOURCE خيار الرابط إلى تضمين مورد في تجميع. /DELAYSIGN، /KEYCONTAINERو /KEYFILE أيضا خيارات الرابط تتيح لك تخصيص كيفية تجميع هو التي تم إنشاؤها.

عند /clrهو استخدامها، _MANAGEDرمز هو المعرفة أن تكون 1. لمزيد من المعلومات، راجع Predefined Macros.

يتم تهيئة المتغيرات العمومية في ملف كائن أصلي أولاً (أثناء DllMain إذا كان الملف التنفيذي هو مكتبة ارتباط حيوي)، وثم يتم تهيئة المتغيرات العمومية في مقطع المدارة (قبل أي تعليمات برمجية مُدارة هو تشغيل). #pragma init_seg يؤثر ترتيب تهيئة في مدار و مدارة الفئات.

ترجمة باستخدام /clr:safeهو مماثل لترجمة باستخدام /النظام الأساسي: anycpu في لغات مثل C#‎.

الأمن و الصور فقط

نسخة فقط يستخدم الإصدار CLR من مكتبة وقت التشغيل C على (CRT). ومع ذلك، عرض CRT هو غير verifiable، لذا لا يمكنك استخدام CRT عندما تقوم بتجميع باستخدام /clr:safe. لمزيد من المعلومات، راجع C أعضاء البيانات-مكتبات الوقت.

أمثلة أصلي تضمين تعليمات برمجية التي لا تظهر في نسخة خالص تجميع مضمنة و setjmp longjmp.

يؤشر إدخال كل نسخة خالص أو اﻷمن هو إدارتها. عندما تقوم يحول برمجياً باستخدام /clr، هو نقطة الإدخال الأصلي. لمزيد من المعلومات، راجع __clrcall.

عند تجميع باستخدام /clr:safe، عن طريق الافتراضي، تكون المتغيرات مجال التطبيق ولا يمكن أن تكون كل عملية. ل /clr:pure، على الرغم من أن appdomainهو الإعداد الافتراضي، يمكنك استخدم عملية المتغيرات.

عند تشغيل ملف.exe 32 بت التي تم تحويله برمجياً باستخدام /clrأو /clr:pureعلى 64 بت النظام تشغيل، سيتم تشغيل التطبيق تحت WOW64، قم بتمكين أحد تطبيقات 32-بت لتعمل على CLR 32 بت على 64 بت النظام تشغيل. بشكل افتراضي، ملف exe. الذي هو تحويله برمجياً باستخدام /clr:safeسيتم تشغيل على CLR 64 بت على كمبيوتر التي هو يشغل نظام تشغيل 64 بت. (في النظام تشغيل 32 بت،.exe نفس ملف سيتم تشغيل في CLR 32 بت.) ومع ذلك، آمن يمكن تحميل تطبيق مكون من نوع 32 بت. في هذه حالة، صورة اﻷمن يعمل تحت نظام تشغيل ستفشل دعم 64 بت عند تحميل تطبيق 32 بت (BadFormatException). إلى التأكد من أن يستمر في نسخة اﻷمن إلى تشغيل عند تحميل نسخة من نوع 32 بت على النظام تشغيل 64 بت، يجب عليك استخدام /CLRIMAGETYPE إلى تغيير بيانات التعريف (.corflags)، ووضع علامة عليه إلى أن يتم تشغيله على WOW64. سطر الأوامر التالي هو كمثال. (قم باستبدال الرمز الإدخال الخاص بك.)

cl /clr:safe t.cpp /link /clrimagetype:pure /entry:?main@@$$HYMHXZ /subsystem:console

لمعلومات حول كيفية إلى يحصل اسم المزين، راجع استخدام قائمة إلى عرض تزيين الأسماء. ل المزيد من المعلومات حول برمجة 64 بت، راجع برمجة مع Visual C++ 64-بت.

للعينات، walkthroughs، و الحصول على مزيد من المعلومات، راجع:

بيانات التعريف و غير المسماة الفصول الدراسية

غير مسمى فئات ستظهر في بيانات التعريف المسماة كما يلي: **$UnnamedClass$crc-من-الحالي--اسم الملف$**قم بفهرسة $، الموقع يكون الفهرس متسلسلة عدد الفئات غير مسمى في التحويل البرمجي. على سبيل المثال، ينشئ نموذج تعليمات برمجية التالي دراسي غير مسماة في بيانات التعريف.

// clr_unnamed_class.cpp
// compile by using: /clr /LD
class {} x;

استخدم ildasm.exe إلى عرض بيانات التعريف.

إلى قم بتعيين هذا خيار المترجم في ‏‫Visual Studio

  1. في من مستكشف الحل، انقر نقراً مزدوجاً فوق اسم المشروع، ومن ثم انقر فوق خصائص لفتح صندوق الحوار مشروع الصفحات الخاصية.

  2. قم بتحديد المجلد خصائص تكوين.

  3. في خاصية الصفحة عام ، قم بتعديل خاصية يعتمد "وقت تشغيل اللغة العامة".

    ملاحظة

    عند /clrهو ممكن في صندوق الحوار الصفحات الخاصية ، خصائص خيار المترجم غير متوافقة مع /clrيتم أيضا ضبط، كما يتطلب. على سبيل المثال، إذا كان /RTCهو تعيين، ثم /clrهو ممكناً، /RTCسيتم تشغيل إيقاف.

    أيضا، عندما تقوم بتصحيح /clrتطبيق، تعيين نوع مصحح الخاصية إلى مختلط أو تتم الإدارة من فقط . لمزيد من المعلومات، راجع إعدادات لمصحح لمشروع C++‎.

    لمعلومات حول كيفية إنشاء وحدة نمطية، راجع /NOASSEMBLY (إنشاء وحدة نمطية MSIL).

لتعيين هذا خيار المحول البرمجي برمجياً

راجع أيضًا:

المرجع

خيار المحول البرمجي

خيارات إعداد المترجم