• WideCharToMultiByte msvc 2012 bug?

    ::WideCharToMultiByte(codePage, 0, wstr, -1, str, length, NULL, NULL);
    
    Небольшая поправка: размер целевого буфера должен быть не length, а length+1 (ведь именно столько памяти выделено), тогда не придётся вставлять завершающий ноль вручную, функция сделает это сама.

    Что касается проблемы, я не понял, при чём тут UTF-8. Конвертируется-то не в UTF-8 (CP_UTF8), а в ANSI (CP_ACP). И в отладчике Студии отображается ANSI. Только в 2012 этот ANSI из другой кодовой страницы. То есть, судя по всему, имеет место баг отладчика Студии. Если раскрыть строку и рассмотреть её посимвольно, то будет видно, что коды символов в обоих случаях одинаковые. Просто 2010 для отображения этих кодов в виде строки использует одну кодовую страницу (русскую, 1251), а 2012 — другую (1252, западную).
    Ответ написан
    2 комментария
  • Вопрос специалистам по GCC и темплейтам C++

    @egorinsk
    У меня немного оффтопиковый вопрос, а зачем вы делаете файлы-то по 20000 строк? Это же наркоманство чистой воды. Сделали бы набор небольших файлов, искать ошибку в 200 строках проще, чем в 20000.
    Ответ написан
    1 комментарий