ktsin
@ktsin
Студент технического университета

Почему CharToOemW преобразует не все символы?

Есть строка "╔════╤════════════════════════════════════════════════════════════════╗". Из неё переводится в char только "╔════╤═══════════════════════════════════════════════════════════". В функцию CharToOem поступает полная строка. В чём может быть проблема?
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
ktsin
@ktsin Автор вопроса
Студент технического университета
Проблема была действительно с машинкой
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
А такое будет работать?

inline const char* wtc(const WCHAR *from)
{
  //Используется буффер -- статическая переменная
  static char buf[1024] = { 0 };
  size_t nChars = std::min<size_t>(wcslen(from), 1024 - 1);
  if (!CharToOemBuffW(from, buf, nChars)) {
    cout << GetLastError();
    exit(-1);
  }
  buf[nChars] = 0;
  return buf;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы