访问冲突读取位置 - 非终止字符串(不可读的内存)

Pio*_*cki 5 c++ logging access-violation log4cplus visual-studio-2012

我正在使用log4cplus库,我无法登录工作.

我用这个代码:

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

LOG4CPLUS_WARN(g_logger, LOG4CPLUS_TEXT("test test test"));
Run Code Online (Sandbox Code Playgroud)

它打破LOG4CPLUS_WARN了错误: Access violation reading location

这是我的调用堆栈:

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
Run Code Online (Sandbox Code Playgroud)

wWinMain ... line 55哪里LOG4CPLUS_WARN是被叫的地方.

我已经检查了这个有什么问题,basic_ostringstream似乎有些东西搞乱了编码或其他东西: 在此输入图像描述

在我的字符串末尾没有终止字符串(不可读的内存)和一大堆奇怪的字母?可能导致什么呢?

yud*_*jin 1

你的问题解决了吗?我有同样的错误,并且我注意到,当应用程序是在调试中构建时,我与 log4cplusU.dll 的发行版本链接,因此与 log4cplusUD.dll 链接进行调试配置解决了我的问题