ReadConsoleInputA 不在 Windows 8 和 Windows 10 返回正确的双字节字符

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 3165318
症状
Windows 8 或 Windows 10 中运行的ReadConsoleInputA函数时,函数将无法返回正确的双字节字符 (DBCS)。使用ReadConsoleInputA函数来从控制台读取的键盘输入的应用程序可能会遇到意外的情况,或它们可能会崩溃。调用 C 运行时函数,如_getch()的应用程序也会受到影响。
原因
ReadConsoleInputA函数没有前进到一个 DBCS 字符的第二个字符代码在每次调用读取单个 INPUT_RECORD 结构时。
状态
Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的问题。
替代方法
若要变通解决此问题,请使用下列方法之一 ︰
  • 使用 ReadConsoleInputW函数或相应的 Unicode 版本的 C 运行时函数如 _getwch().
  • 当您调用读取两个 INPUT_RECORD 结构ReadConsoleInputA.

警告:本文已自动翻译

属性

文章 ID:3165318 - 上次审阅时间:05/19/2016 19:58:00 - 修订版本: 1.0

Windows 8, Windows 8.1, Windows 10

  • kbmt KB3165318 KbMtzh
反馈