2013-09-21 55 views
5

Log4cplus kütüphanesini kullanıyorum ve oturum açmak için oturum açamıyorum.Erişim ihlali okuma konumu - sonlandırılmamış dize (okunamayan bellek)

Bu kodu kullanın:

PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT("log.properties")); 
Logger g_logger = Logger::getInstance(LOG4CPLUS_TEXT("mylogger")); 

LOG4CPLUS_WARN(g_logger, LOG4CPLUS_TEXT("test test test")); 

Ve hata ile LOG4CPLUS_WARN de kırar: wWinMain ... line 55 nerede bir yer LOG4CPLUS_WARN olduğunu

msvcp110d.dll!std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >::egptr() Line 236 C++ 
ProjectClientd.exe!std::basic_stringbuf<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::str() Line 103 C++ 
ProjectClientd.exe!std::basic_ostringstream<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::str() Line 553 C++ 
> ProjectClientd.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpCmdLine, int nCmdShow) Line 55 C++ 
ProjectClientd.exe!__tmainCRTStartup() Line 528 C 
ProjectClientd.exe!wWinMainCRTStartup() Line 377 C 

: Access violation reading location

Bu benim Çağrı yığını olduğunu çağrılıyor.

Bu basic_ostringstream nesi kontrol ettikten ve bir şey kodlama falan berbat görünüyor

: enter image description here

Olmayan sonlandırılmış dize (okunamayan bellek) ve sonunda garip harfler sürü benim dizgim Buna ne sebep olabilir?

+0

Ben bilmiyorum log4cplus ama geniş bir char/dar kar karışıklığı gibi görünüyor. Yığın izinizi "basic_stringbuf john

+0

@john Genişletilmiş '_Stringbuffer' görünümüne bakın, geniş bir karakter dizgisidir (' L 'test testi testi ... "'). – IInspectable

+1

@john Ben '_T' ile denedim, ne yazık ki aynı sonuç. –

cevap

1

Sorununuzu çözdünüz mü? Ben aynı hata var ve ben hata ayıklama yapılandırması için log4cplusUD.dll ile bağlantı hata ayıklama inşa edilirken, log4cplusU.dll sürümü ile bağlı olduğunu fark ettim, benim sorun çözüldü benim sorunum çözüldü

+0

Unfortunaltey Sorunumu henüz çözmedim. Sonunda log4cplus yerine GLOG kütüphanesi kullandım. Her neyse, verdiğiniz çözümü çoktan kontrol ettim, sanırım başka bir yerde de buldum. Ama doğru dulumları kullanıyordum, bu yüzden davamda bir sebep yoktu. –

İlgili konular