الأعراض
استخدم خيار برنامج التحويل البرمجي /Ot (صالح السريع رمز) عند إنشاء أحد تطبيقات التي تم تكوينها على x64 النظام الأساسي في Microsoft Visual Studio 2005 Service Pack 1 (SP1). عند تشغيل التطبيق، قد تعمل بعض العبارات إذا بشكل غير صحيح. ولذلك، النتائج غير متوقعة. على سبيل المثال، قد يتم تخطي عبارات إذا في التعليمات البرمجية المنشأة للتطبيق.
تحدث هذه المشكلة فقط في السيناريو التالي.
-
هناك بعض الإرشادات MOV بين عمليتي المقارنة.
-
مقارنة هذه العمليات استعمال نفس المعاملات.
-
يتم تغيير قيم المعاملات بالإرشادات MOV.
في هذا السيناريو، قد يتم تخطي عبارات إذا في عملية المقارنة الثانية.
ملاحظات
-
قد تحدث هذه المشكلة أيضا عند استخدام الخيار /O2 أو /Ox لبناء التطبيق.
-
تحدث هذه المشكلة x86 النظام الأساسي.
السبب
تحدث هذه المشكلة لأن يفترض محسن أمثلية برنامج التحويل البرمجي بشكل غير صحيح على أنه يمكن استخدام العلامة التي حددتها العملية XOR دون عملية مقارنة بما في ذلك.
الحل
معلومات الإصلاح العاجل
يتوفر إصلاح عاجل معتمد من Microsoft. ومع ذلك، يهدف هذا الإصلاح العاجل إلى حل المشكلة الموضحة في هذه المقالة فقط. قم بتطبيق هذا الإصلاح العاجل فقط على الأنظمة التي تواجه المشكلة الموضحة في هذه المقالة. قد يتم إجراء اختبارات إضافية على هذا الإصلاح العاجل. ولذلك، إذا لم يكن تأثير المشكلة كبيرا، نوصي بالانتظار حتى الإصدار التالي من تحديث البرنامج الذي يحتوي على هذا الإصلاح العاجل.
إذا كان يتوفر الإصلاح العاجل للتنزيل، يوجد مقطع "توفر تنزيل الإصلاح عاجل" أعلى مقالة قاعدة المعارف. في حالة عدم ظهور هذا القسم، اتصل بخدمة العملاء ل Microsoft والدعم للحصول على الإصلاح العاجل.
ملاحظة: في حالة حدوث مشكلات إضافية أو يجب إجراء استكشاف للأخطاء وحلها، قد يلزم إنشاء طلب خدمة منفصل. سيتم تطبيق تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشكلات التي لا يعمل على حلها هذا الإصلاح العاجل بالتحديد. للحصول على قائمة أرقام هواتف خدمة العملاء ل Microsoft والدعم أو لإنشاء طلب خدمة منفصل، قم بزيارة موقع Microsoft التالي على الويب:
http://support.microsoft.com/contactus/?ws=supportملاحظة: يعرض النموذج "توفر تنزيل الإصلاح العاجل" اللغات التي يتوفر الإصلاح الجديد. في حالة عدم ظهور اللغة الخاصة بك، يكون بسبب عدم توفر إصلاح عاجل لتلك اللغة.
المتطلبات الأساسية
يجب عليك في Visual Studio 2005 SP 1 مثبتة لتطبيق هذا الإصلاح العاجل.
متطلبات إعادة التشغيل
ليس من الضروري إعادة تشغيل جهاز الكمبيوتر بعد تطبيق هذا الإصلاح العاجل.
معلومات استبدال الإصلاح العاجل
لا يحل هذا الإصلاح العاجل محل أية إصلاحات عاجلة أخرى.
معلومات الملف
يحتوي إصدار اللغة الإنجليزية من هذا الإصلاح العاجل على سمات الملف (أو سمات الملف الأحدث) المسرودة في الجدول التالي. يتم سرد التواريخ والأوقات الخاصة بهذه الملفات بالتوقيت العالمي المتفق عليه (UTC). عند عرض معلومات الملف، يتم تحويلها إلى التوقيت المحلي. لمعرفة الفرق بين التوقيت العالمي المتفق عليه والتوقيت المحلي، استخدم علامة التبويب المنطقة الزمنية في عنصر التاريخ والوقت في "لوحة التحكم".
اسم الملف |
إصدار الملف |
حجم الملف |
التاريخ |
الوقت |
النظام الأساسي |
---|---|---|---|---|---|
C2.dll |
14.0.50727.3080 |
2,273,280 |
19 نوفمبر 2008 |
18:52 |
x86 |
C2.dll |
14.0.50727.3080 |
7,192,576 |
19 نوفمبر 2008 |
23:25 |
IA-64 |
C2.dll |
14.0.50727.3080 |
2,490,368 |
19 نوفمبر 2008 |
23:26 |
x86 |
C2.dll |
14.0.50727.3080 |
3,600,384 |
19 نوفمبر 2008 |
23:33 |
x64 |
C2.dll |
14.0.50727.3080 |
2,203,648 |
19 نوفمبر 2008 |
23:33 |
x86 |
الحل البديل
للتغلب على هذه المشكلة، استخدم إحدى الطرق التالية:
-
استخدم الكلمة الأساسية المتغيرة عند تعريف المتغيرات المستخدمة في حالة البيانات.
-
قم بتعطيل خيار أمثلية السرعة. على سبيل المثال، استبدال الخيار /Ot بخيار /Os (رمز صغير صالح) . أو، استخدم خيار /O1 بدلاً من الخيار /O2 أو /Ox .
-
إضافة سطر التعليمات برمجية قبل عملية مقارنة البيانات إذا كان في الثانية. على سبيل المثال، بإضافة عبارة printf .
الحالة
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".
مزيد من المعلومات
لمزيد من المعلومات حول رمز واحد أو أكثر من عبارات قد تعمل بشكل غير صحيح عند استخدام ميزة أمثلية التعليمات البرمجية في Visual Studio 2005، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
925792 واحد أو أكثر من عبارات التعليمات البرمجية قد تعمل بشكل غير صحيح عند استخدام ميزة أمثلية التعليمات البرمجية في Visual Studio 2005
لمزيد من المعلومات حول مصطلحات تحديث البرامج، انقر فوق رقم المقال التالي لعرضه في "قاعدة معارف Microsoft":
824684 وصف للمصطلحات القياسية المستخدمة في وصف تحديثات برامج Microsoft