File4ppender的Log4cplus char *和tstring问题

时间:2012-11-14 20:26:05

标签: c++ log4cplus

我在Visual Studio 2010中有两个项目配置几乎相同 一个与控制台一起工作,并且没有给语句带来任何麻烦

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来自' const char [10]' to' const log4cplus :: tstring&'

  

有关如何解决此问题的任何建议?

2 个答案:

答案 0 :(得分:1)

尝试将"myLogFile.log"包裹起来:LOG4CPLUS_TEXT("myLogFile.log")。您也可以使用_T()宏,因为您在Windows上使用Visual Studio。

答案 1 :(得分:0)

我不知道log4cplus::tstring是什么类型,但假设类型为typedef的类型为std::basic_string<cT>(可能甚至std::basic_string<cT>类型为cT除了char之外,您可以尝试其中之一:

SharedAppenderPtr app1(new FileAppender(L"myLogFile.log"));
std::string name("myLogFile.log");
SharedApppenderPtr app2(new FileAppender(log4cplus::tstring(name.begin(), name.end())));