2013-09-21 13 views
5

Uso la libreria log4cplus e non riesco ad accedere al registro.Posizione di lettura della violazione di accesso - stringa non terminata (memoria illeggibile)

Io uso questo codice:

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

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

E si rompe a LOG4CPLUS_WARN con l'errore: Access violation reading location

Questo è il mio Stack di chiamate:

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 

dove wWinMain ... line 55 è un luogo dove LOG4CPLUS_WARN viene chiamato.

Ho controllato che cosa c'è di sbagliato con questo basic_ostringstream e sembra che qualcosa è incasinato con la codifica o qualcosa del genere: enter image description here

stringa non terminata (memoria illeggibile) e tutta una serie di strane lettere alla fine del la mia corda? Cosa potrebbe causarlo?

+0

Non so log4cplus ma sembra essere una grande confusione di char/narrow char. Si noti che la traccia dello stack dice 'basic_stringbuf john

+0

@john Guarda la vista espansa '_Stringbuffer', è una stringa di caratteri estesa tutto bene (test di prova" L "test ... "'). – IInspectable

+1

@john Ho provato con '_T', purtroppo lo stesso risultato. –

risposta

1

Hai risolto il tuo problema? Ho lo stesso errore, e ho notato, che ho collegato con la versione di log4cplusU.dll mentre l'applicazione è stata costruita nel debug, quindi il collegamento con log4cplusUD.dll per la configurazione di debug ha risolto il mio problema

+0

Unfortunaltey Non ho ancora risolto il mio problema. Finalmente ho usato la libreria GLOG invece di log4cplus. Ad ogni modo, ho già controllato la soluzione che hai dato, penso di averlo trovato anche da qualche altra parte. Ma stavo usando le dll giuste, quindi non era una ragione nel mio caso. –

Problemi correlati