Windows 8 および Windows 10 で ReadConsoleInputA が正しいダブルバイト文字を返さない

現象
Windows 8 または Windows 10 で ReadConsoleInputA 関数を実行したときに、関数が正しいダブルバイト文字 (DBCS) を返すことができません。ReadConsoleInputA 関数を使用してコンソールからキーボード入力を読み取るアプリケーションで、予期しない動作が発生したりクラッシュしたりすることがあります。_getch() などの C ランタイム関数を呼び出すアプリケーションも影響を受けます。
原因
各呼び出しで単一の INPUT_RECORD 構造体が読み取られるときに、ReadConsoleInputA 関数が、DBCS 文字の 2 番目の文字コードに進みません。
状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
回避策
この問題を回避するには、次のいずれかの方法を使用します。
  • ReadConsoleInputW 関数または対応する Unicode バージョンの C ランタイム関数 ( _getwch() など) を使用します。
  • ReadConsoleInputA を呼び出すときに 2 つの INPUT_RECORD 構造体を読み取ります。
プロパティ

文書番号:3165318 - 最終更新日: 05/30/2016 08:41:00 - リビジョン: 2.0

Windows 8, Windows 8.1, Windows 10

  • KB3165318
フィードバック