Я изменил свой класс для использования зОго :: строки (на основе ответа я получил here, но функцию у меня есть возврат wchar_t * Как преобразовать его в StD :: строкаКак преобразовать wchar_t * в std :: string? .?
Я попытался это:
std::string test = args.OptionArg();
, но он говорит C2440 ошибки: 'инициализации': не удается преобразовать из 'wchar_t *' до 'станд :: basic_string < _Elem, _Traits, _Ax>'
и я до сих пор получить константный символ *, если я использую .c_str()? У меня есть другие функции, которые ожидают const char * – codefrog 2010-12-02 21:16:58
Я собираюсь предположить, что вы строите свой проект в Юникоде, но на самом деле этого не хотите. Если это правильно, вы можете изменить свойства своего проекта, чтобы не строить для Unicode, а затем вы можете использовать `string`. Проверьте это в свойствах проекта, свойствах конфигурации, общем наборе символов. Вам нужно это, чтобы сказать «Использовать многобайтовый набор символов», чтобы избавиться от Unicode повсюду. – 2010-12-02 21:19:41
Первоначально я планировал использовать Unicode для некоторых частей, но потом решил, что позже об этом позабочусь. На данный момент мне только надоело, чтобы программа работала. Я использую SimpleINI и SimpleOpt для загрузки параметров, и он использует Unicode. Я также использую SDK другого программного обеспечения, которое также использует Unicode. Отключение Unicode вместе может привести к тому, что даже те части кода перестанут работать. – codefrog 2010-12-02 21:22:17