1

Visual Studio 2010にほぼ同じ構成の2つのプロジェクトがあります。1つはコンソールが機能し、ステートメントに問題はありません。

SharedAppenderPtr myAppender(new FileAppender("myLogFile.log"));

他のプロジェクトがdllプロジェクトが同じステートメントで問題を起こす間

SharedAppenderPtr myAppender(new FileAppender("myLogFile.log"));

エラーメッセージは次のとおりです。

エラー3エラーC2664:'log4cplus :: FileAppender :: FileAppender(const log4cplus :: tstring&、std :: ios_base :: openmode、bool)':パラメーター1を'constchar[10]'から'constlog4cplusに変換できません: :tstring& '

この問題を解決する方法について何か提案はありますか?

4

2 に答える 2

1

"myLogFile.log"次のようにラッピングしてみてくださいLOG4CPLUS_TEXT("myLogFile.log")_T()Visual Studioを使用するWindowsを使用しているため、マクロを使用することもできます。

于 2012-11-15T06:36:14.810 に答える
0

タイプが何であるかはわかりませんが、 (おそらく)に似たタイプのタイプであるとlog4cplus::tstring仮定すると、次のいずれかを試すことができます。typedefstd::basic_string<cT>std::basic_string<cT>cTchar

SharedAppenderPtr app1(new FileAppender(L"myLogFile.log"));
std::string name("myLogFile.log");
SharedApppenderPtr app2(new FileAppender(log4cplus::tstring(name.begin(), name.end())));
于 2012-11-14T22:47:48.243 に答える