5

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: enter image description here

Nicht-terminierten String (unleserlich Speicher) und eine ganze Reihe von seltsamen Buchstaben am Ende meine Schnur? Was kann es verursachen?

+0

Ich weiß nicht log4cplus aber es scheint eine breite char/eng char Verwirrung zu sein. Beachten Sie, dass Ihr Stack-Trace 'basic_stringbuf john

+0

@ john Betrachten Sie die erweiterte '_Stringbuffer' Ansicht, es ist eine breite Zeichenfolge in Ordnung (' L "test test test ... "). – IInspectable

+1

@john Ich habe es mit '_T' versucht, das gleiche Ergebnis leider. –

Antwort

1

Haben Sie Ihr Problem gelöst? Ich habe den gleichen Fehler, und ich habe festgestellt, dass ich mit Release-Version von log4cplusU.dll verknüpft, während Anwendung in Debugging gebaut wurde, so Verknüpfung mit log4cplusUD.dll für Debug-Konfiguration gelöst mein Problem

+0

Unfortunaltey Ich habe mein Problem noch nicht gelöst. Ich habe endlich GLOG Bibliothek anstelle von log4cplus verwendet. Wie auch immer, ich habe die Lösung, die du gegeben hast, bereits überprüft, ich glaube, ich habe sie auch woanders gefunden. Aber ich benutzte die richtigen Dlls, also war das für mich kein Grund. –

Verwandte Themen