Мне кажется, что вы можете просто использовать CharNextExA , чтобы перейти к следующей позиции символа во входном потоке.Таким образом, вы можете получить некоторые символы и преобразовать их вместе в строку UNICODE в отношении MultiByteToWideChar .После того, как у вас есть текстовый фрагмент UNICODE, вы можете преобразовать его в другую кодовую страницу, используя WideCharToMultiByte .
ОБНОВЛЕНО : Я уверен, что процесс получения потока вводаданные гораздо медленнее, чем при декодировании данных относительно CharNextExA , MultiByteToWideChar и WideCharToMultiByte .Например, если вы используете буфер в стеке, такой как WCHAR szBuffer[4096]
и TCHAR szDestBuffer[4096]
, тогда вы сможете очень быстро декодировать 1К входных данных.Поэтому я полагаю, что общее время работы всей вашей программы будет почти равнозначно использованию этих трех функций.
Более того, я не уверен, что у вас есть какая-либо альтернатива.Я не знаю ни одного надежного способа начать декодирование текста с начала или в конце текста.Вероятно, у других людей есть другая идея ...