5

私はlog4cplusライブラリを使用していますが、動作するようにログを取得できません。アクセス違反の読み取り場所 - 終了していない文字列(読み取り不可能なメモリ)

私はこのコードを使用

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

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

をそして、それはエラーでLOG4CPLUS_WARNで破る: Access violation reading location

これは私のコールスタックです:

wWinMain ... line 55LOG4CPLUS_WARN場所です
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 

が呼び出されています。

私はこの basic_ostringstreamと間違って何チェックして、何かは、エンコーディングまたは何かを台無しにされているようです

enter image description here

非終わる文字列(判読できないメモリ)との終わりに奇妙な手紙の全体の束私の弦?何が原因でしょうか?

+0

私はlog4cplusしかしそれは幅広いchar/narrow charの混乱のようです。スタックトレースは 'basic_stringbuf john

+0

@johnを試してみてください。展開された '_Stringbuffer'ビューを見ると、それはワイド文字列です(' L "テストテストテスト... ")。 – IInspectable

+1

@john残念ながら、私は '_T'で試してみました。 –

答えて

1

問題を解決しましたか?私は同じエラーがあり、アプリケーションがデバッグでビルドされている間にlog4cplusU.dllのリリースバージョンにリンクしていることに気付いたので、デバッグ設定のlog4cplusUD.dllとのリンクが問題を解決しました

+0

不幸なことに私はまだ私の問題を解決していません。私はついにlog4cplusの代わりにGLOGライブラリを使用しました。とにかく、私はすでにあなたが与えた解決策をチェックしました、私は他のどこかでそれを見つけたと思います。しかし、私は適切なDLLを使用していたので、それは私の場合の理由ではありませんでした。 –

関連する問題