Il me semble que vous pouvez simplement utiliser CharNextExA pour passer à la position suivante dans le flux d'entrée. Dans la façon dont vous pouvez obtenir quelques caractères et convertir ensemble dans la chaîne UNICODE à l'égard de MultiByteToWideChar. Une fois que vous avez le fragment de texte UNICODE, vous pouvez le convertir dans une autre page de code en utilisant WideCharToMultiByte.
MISE À JOUR: Je suis sûr que le processus de réception du flux des données d'entrée est beaucoup plus lentement que le décodage des données en ce qui concerne des CharNextExA, MultiByteToWideChar et WideCharToMultiByte. Par exemple, si vous utilisez un tampon sur la pile comme WCHAR szBuffer[4096]
et TCHAR szDestBuffer[4096]
alors vous serez en mesure de décoder 1K de données d'entrée très rapidement. Donc, je suppose que le temps total de travail de votre programme sera presque indenté de l'utilisation de ces trois fonctions.
De plus, je ne suis pas sûr que vous avez une alternative. Je ne connais aucun moyen fiable pour commencer le décodage du texte soit depuis le début de la fin du texte. Probablement d'autres personnes ont une autre idée ...
Quelles pages de code utilisez-vous? Sous quelle forme recevez-vous les données? J'espère du début à la fin et non l'inverse. – Oleg
Le code devrait fonctionner avec toutes les pages de codes supportées par les plateformes Windows. Je reçois les données en codage multi-octets ou mono-octet et je souhaite le traiter en interne sous forme large, en le convertissant en codage spécifique aux paramètres régionaux en sortie (après traitement). – Basilevs