Log4cplus char * и tstring проблема с FileAppender

У меня есть два проекта с почти одинаковой конфигурацией в 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] ‘в’ const log4cplus :: tstring &’

Любые предложения о том, как я мог решить эту проблему?

1

Решение

Попробуйте обернуть "myLogFile.log" как это: LOG4CPLUS_TEXT("myLogFile.log"), Вы также можете использовать _T() макрос, так как вы находитесь в Windows с Visual Studio.

1

Другие решения

Я не знаю какой тип 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())));
0

По вопросам рекламы [email protected]