Ich verwende die log4cplus-Bibliothek und kann die Protokollierung nicht aktivieren.Zugriffsverletzungsleseposition - nicht abgeschlossene Zeichenfolge (nicht lesbarer Speicher)
Ich benutze diesen Code:
PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT("log.properties"));
Logger g_logger = Logger::getInstance(LOG4CPLUS_TEXT("mylogger"));
LOG4CPLUS_WARN(g_logger, LOG4CPLUS_TEXT("test test test"));
Und es bricht bei LOG4CPLUS_WARN
mit Fehler: Access violation reading location
Das ist mein Call Stack:
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
wo wWinMain ... line 55
ist ein Ort, an dem LOG4CPLUS_WARN
wird angerufen.
Ich habe überprüft, was mit diesem basic_ostringstream
falsch ist und es scheint, dass mit Codierung oder etwas verkorkste etwas:
Nicht-terminierten String (unleserlich Speicher) und eine ganze Reihe von seltsamen Buchstaben am Ende meine Schnur? Was kann es verursachen?
Ich weiß nicht log4cplus aber es scheint eine breite char/eng char Verwirrung zu sein. Beachten Sie, dass Ihr Stack-Trace 'basic_stringbuf
john
@ john Betrachten Sie die erweiterte '_Stringbuffer' Ansicht, es ist eine breite Zeichenfolge in Ordnung (' L "test test test ... "). – IInspectable
@john Ich habe es mit '_T' versucht, das gleiche Ergebnis leider. –