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:
stringa non terminata (memoria illeggibile) e tutta una serie di strane lettere alla fine del la mia corda? Cosa potrebbe causarlo?
Non so log4cplus ma sembra essere una grande confusione di char/narrow char. Si noti che la traccia dello stack dice 'basic_stringbuf
john
@john Guarda la vista espansa '_Stringbuffer', è una stringa di caratteri estesa tutto bene (test di prova" L "test ... "'). – IInspectable
@john Ho provato con '_T', purtroppo lo stesso risultato. –