Hata: Visual C++ .NET veya Visual C++ 2005 hata ayıklayıcısını std::string ve std::wstring değişkenleri doğru görüntüleyemiyor

Makale çevirileri Makale çevirileri
Makale numarası: 326616 - Bu makalenin geçerli olduğu ürünleri görün.
Duyuru
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Hata ayıklayıcısını değerler için aşağıdaki dizeleri gerektiği gibi görüntülenmeyebilir:
  • dizenin uzunluğu 15 karakterden fazlaysa std::string değişkenleri.
  • dizenin uzunluğu 15'ten daha az karakter ise std::wstring değişkenleri.

Neden

Daha az 15 karakter uzunluğunda std::string veya std::wstring değişken statik arabellek depolanır. Dizenin uzunluğu 15 karakterden daha büyükse, dize bellek gösteren bir işaretçi olarak depolanır.

Hata ayıklayıcısını std::string değişken görünümünü denetlemek için Autoexp.dat dosyasını değiştirebilirsiniz. _Bx._Buf üye statik arabellek depolanan std::string belirtmek için kullanılır. _Bx._Ptr üyesini, bu std::string bellek gösteren bir işaretçi olarak depolanan belirtmek için kullanılır. Hata ayıklayıcısını, _Bx._Ptr üyesi için std::string autoexp.dat dosyasında belirtilen, uzunluğu 15 karakterden büyük olan std::string değişkenleri görüntülemez. Hata ayıklayıcısını, _Bx._Buf üyesi için std::wstring autoexp.dat dosyasında belirtilen, daha az 15 karakter uzunluğunda olması std::wstring değişkenleri görüntülemez.

Çözüm

Değişken değerlerini görüntüleyen bileşen Debugger Expression Değerlendiricisi (EE) olarak bilinir. Yerel kod örneği EE işleme ve yönetilen kod diğer örneği işler. Yönetilen EE özelleştirmesini Mcee_mc.dat dosya sağlar ve özelleştirme için yerel EE Autoexp.dat dosyası sağlar. Bu sorunu gidermek için <a0></a0>, the Autoexp.dat değiştirme dosya.

Autoexp.dat dosyasını değiştirmek için <a0></a0>, aşağıdaki adımları izleyin:
  1. Not Defteri'ni veya başka bir metin düzenleyicisini açın.
  2. C:\Program Files\Microsoft Visual Studio'nun .NET\Common7\Packages\Debugger klasöründen Autoexp.dat dosyasını.
  3. Autoexp.dat dosyasında aşağıdaki satırı bulun:
    • 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. Adım 3 aşağıdaki satırları bulunan satırları değiştirin:
    • 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>

Durum

Microsoft, bu makalenin başında listelenen Microsoft ürünlerinde bir sorun olduğunu onaylamıştır.

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

  1. Visual C++ Win32 yeni proje oluştur:
    1. Dosya menüsünde Yeni'yi tıklatın.
    2. Altında Project Types, Visual C++ Projects ' ı tıklatın ve Win32 Projectşablonları ' nda'ı tıklatın.

      Not Visual Studio 2005'te, Visual C++ projeleriVisual C++ için değiştirilir.
    3. Projeyi LongStringDemo.
    4. Win32 uygulama Sihirbazı, Uygulama ayarları ' nı tıklatın ve sonra da Konsol uygulamasıUygulama türü seçin.
    5. Ek seçenekler altında Boş bir proje onay kutusunu tıklatıp seçin ve sonra da <a2>son</a2>'u tıklatın.
  2. Solution ExplorerSource Files ' ı sağ tıklatın ve sonra Yeni bir C++ Ekle dosya.
  3. LongStringDemo.cpp dosyayı adlandırın.
  4. Ad kullanılarak LongStringDemo.cpp 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. Yapı) menüsünde tıklatın Build Solution.
  6. Hata ayıklama) menüsünde, Step ınto (F11) tıklatın ve hata ayıklaması'nı başlatın.
  7. Hata ayıklama) menüsünde, Windows işaret, izleme işaretleyin ve watch1</a1>'ı tıklatın.
  8. Gözcü penceresine, szAnsiString değişken ve wszWCharString değişkeni ekleyin. Değer, szAnsiString veya wszWCharString değişkenine işaret ederek de izleyebilirsiniz.
  9. Gözcü penceresinde szAnsiString veya wszWCharString değişkenin değerini doğrulayın.

Özellikler

Makale numarası: 326616 - Last Review: 12 Ocak 2006 Perşembe - Gözden geçirme: 2.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbdebug kbbug KB326616 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:326616

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com