BUG: مصحح .NET Visual C++ أو Visual C++ 2005 يتعذر عرض std::string والمتغيرات std::wstring بشكل صحيح

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

اضغط هنا لرابط المقالة باللغة الانجليزية326616
الأعراض
قد لا يتم عرض المصحح قيم بشكل مناسب السلاسل التالية:
  • متغيرات std::string إذا كان طول السلسلة أكبر من 15 حرفاً.
  • متغيرات std::wstring إذا كان طول السلسلة أقل من 15 حرفاً.
السبب
يتم تخزين المتغير std::string أو std::wstring المخزن المؤقت ثابتة إذا كان الطول أقل من 15 حرفاً. إذا كان طول السلسلة أكبر من 15 حرفاً, يتم تخزين السلسلة مؤشر إلى الذاكرة.

ويمكنك تعديل ملف Autoexp.dat التحكم في عرض المصحح std::string متغير. يتم استخدام عضو _Bx._Buf لتحديد std::string تخزين ثابتة المخزن المؤقت. يتم استخدام عضو _Bx._Ptr لتحديد تخزين هذه std::string كمؤشر إلى الذاكرة. عندما لم يتم تحديد عضو _Bx._Ptr std::string في ملف autoexp.dat, لا يعرض المصحح المتغيرات std::string التي يكون طول أكبر من 15 حرفاً. عندما لم يتم تحديد عضو _Bx._Buf std::wstring في ملف autoexp.dat, لا يعرض المصحح المتغيرات std::wstring التي يكون الطول أقل من 15 حرفاً.
الحل
يُعرف مكون المصحح التي تعرض قيم المتغيرات هندسة كـ تعبير مقيم (كهربائية). يعالج مثيل واحد من هندسة كهربائية تعليمة برمجية أصلية ثم يعالج مثيل الأخرى تعليمات برمجية تمت إدارتها. يوفر ملف Autoexp.dat التخصيص بالنسبة هندسة كهربائية الأصلي ويوفر الملف Mcee_mc.dat التخصيص هندسة كهربائية المدارة. لحل هذه المشكلة، قم بتعديل Autoexp.dat في الملف.

لتعديل ملف Autoexp.dat اتبع الخطوات التالية:
  1. افتح المفكرة أو أي محرر نصوص أخرى.
  2. فتح ملف Autoexp.dat من المجلد .NET\Common7\Packages\Debugger c:\Program Files\Microsoft Visual Studio.
  3. في ملف Autoexp.dat حدد موقع الأسطر التالية:
    • std::basic_string<char,std::char_traits<char>,std::allocator<char> >=<_Bx._Buf>
    • std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >=<_Bx._Ptr>
    • std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >=<_Bx._Ptr>
  4. استبدال الخطوط التي قمت بتحديد موقعه في الخطوة 3 مع الأسطر التالية:
    • std::basic_string<char,std::char_traits<char>,std::allocator<char> >=_Buf=<_Bx._Buf> _Ptr= <_Bx._Ptr>
    • std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >=_Buf=<_Bx._Buf> _Ptr= <_Bx._Ptr>
    • std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >=<_Bx._Buf> _Ptr= <_Bx._Ptr>
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في بداية هذه المقالة.
معلومات أخرى

خطوات إعادة إنشاء في سلوك

  1. إنشاء مشروع جديد Win32 Visual C++:
    1. من القائمة ملف، انقر فوق جديد.
    2. ضمن أنواع Project انقر فوق مشاريع Visual C++ ، ثم انقر فوق Project Win32 في القوالب.

      ملاحظة في Visual Studio 2005 ، يتم تغيير مشاريع Visual C++ إلى Visual C++.
    3. اسم المشروع LongStringDemo.
    4. في معالج التطبيق Win32 انقر فوق إعدادات التطبيق ثم قم بتحديد نوع التطبيق كقيمة تطبيق وحدة التحكم.
    5. ضمن خيارات إضافية ، انقر لتحديد خانة الاختيار إفراغ Project ثم انقر فوق إنهاء.
  2. في مستكشف الحلول انقر بزر الماوس الأيمن فوق الملفات المصدر ومن ثم انقر فوق إضافة C++ جديد الملف.
  3. اسم الملف LongStringDemo.cpp.
  4. قم بإضافة التعليمات البرمجية التالية إلى file:
    #include <string>using namespace std;void main(){	//Ansi String	string szAnsiString;	szAnsiString = "c:\\Program Files\\Microsoft Visual Studio .Net";	//Wide Char String	wstring wszWCharString;	wszWCharString = L"c:\\Program Files\\Microsoft Visual Studio .Net";}
  5. في القائمة إنشاء ، انقر فوق بنية الحل.
  6. من القائمة تصحيح ، انقر فوق خطوة عادية (F11) ثم بدء التصحيح.
  7. من القائمة تصحيح ، أشر إلى Windows, أشر إلى مراقبة ثم انقر فوق watch1.
  8. إضافة متغير szAnsiString متغير wszWCharString إطار المراقبة. يمكنك أيضاً مراقبة القيمة بواسطة الإشارة إلى المتغير szAnsiString أو wszWCharString.
  9. في إطار المراقبة ، تحقق من قيمة متغير szAnsiString أو wszWCharString.
ملاحظة
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 326616 - آخر مراجعة: 01/17/2015 05:51:36 - المراجعة: 2.0

Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbdebug kbbug KB326616 KbMtar
تعليقات