我在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&'
有关如何解决此问题的任何建议?
答案 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())));