在visual studio 2010中,我有两个配置几乎相同的项目,一个带有控制台工作,对语句没有任何问题。
SharedAppenderPtr myAppender(new FileAppender("myLogFile.log"));当另一个项目dll项目遇到相同语句时,则会出现问题。
SharedAppenderPtr myAppender(new FileAppender("myLogFile.log"));错误信息是:
错误3错误C2664:‘log4cplus::FileAppender::FileAppender(Constlog4cplus::tstring &,std::ios_base::openmode,bool):无法将参数1从'const char 10’转换为'const log4cplus::tstring &‘
关于我如何解决这个问题,有什么建议吗?
发布于 2012-11-15 06:36:14
尝试将"myLogFile.log"包装如下:LOG4CPLUS_TEXT("myLogFile.log")。您还可以使用_T()宏,因为您使用的是Visual。
发布于 2012-11-14 22:47:48
我不知道log4cplus::tstring是什么类型,但假设它是类似于std::basic_string<cT>的类型的typedef (甚至可能是带有除char以外的类型cT的std::basic_string<cT> ),您可以尝试其中之一:
SharedAppenderPtr app1(new FileAppender(L"myLogFile.log"));
std::string name("myLogFile.log");
SharedApppenderPtr app2(new FileAppender(log4cplus::tstring(name.begin(), name.end())));https://stackoverflow.com/questions/13386742
复制相似问题