2013-09-21 14 views
5

Używam biblioteki log4cplus i nie mogę uruchomić logowania.Lokalizacja odczytu naruszenia zasad dostępu - ciąg bez końca (nieczytelna pamięć)

używam tego kodu:

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

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

I to łamie w LOG4CPLUS_WARN z błędem: Access violation reading location

To jest mój stos wywołań:

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 

gdzie wWinMain ... line 55 jest miejscem, gdzie LOG4CPLUS_WARN jest wywoływany.

Sprawdziłem co jest nie tak z tym basic_ostringstream i wydaje się, że coś jest pomieszane z kodowaniem lub coś: enter image description here

zakaz zakończony sznurkiem (pamięć nieczytelny) i całą masę dziwnych liter na końcu mój ciąg? Co może spowodować?

+0

Nie wiem log4cplus ale wydaje się, że jest to szerokie zamieszanie. Zauważ, że twój ślad stosu mówi 'basic_stringbuf john

+0

@john Spójrz na rozszerzony widok' _Stringbuffer', jest to szeroki ciąg znaków w porządku (test testowy "L" ... "'). – IInspectable

+1

@john Próbowałem już z '_T', ten sam wynik niestety. –

Odpowiedz

1

Czy rozwiązałeś już swój problem? Mam ten sam błąd i zauważyłem, że połączyłem się z wersją wydania log4cplusU.dll, podczas gdy aplikacja została wbudowana w debugowanie, więc powiązanie z log4cplusUD.dll dla konfiguracji debugowania rozwiązało mój problem

+0

Niestety, jeszcze nie rozwiązałem mojego problemu. W końcu użyłem biblioteki GLOG zamiast log4cplus. W każdym razie, już sprawdziłem rozwiązanie, które podałeś, myślę, że znalazłem to również gdzie indziej. Ale używałem odpowiednich bibliotek DLL, więc nie było to powodem w moim przypadku. –

Powiązane problemy