Windows 版本 10.0.17763.1
一个控制台可以有多个屏幕缓冲区,但只有一个活动屏幕缓冲区。 可以访问非活动屏幕缓冲区进行读写,但只显示活动屏幕缓冲区。 要使新屏幕缓冲区成为活动屏幕缓冲区,请使用 SetConsoleActiveScreenBuffer 函数。
此功能已损坏 - 发送到非活动屏幕缓冲区的文本最终处于活动状态,因此在屏幕上可见。
它不会在传统模式下发生。
重现所附问题的最小项目。
谢谢。 幸运/不幸的是,您的工作进展顺利,提交错误的速度比我调查和修复它们的速度要快。
我已在内部将其归档为MSFT:19317384。 有时间我会处理的。
值得一提的是,这仅在从 Visual Studio 运行时发生,默认情况下,它通过自己的 VsDebugConsole.exe 帮助程序执行此操作。
行。 我已经对此进行了调查,制定了修复程序,对其进行了审查,并从今天开始对其进行了检查。
我还在您提供的示例上安装了一个变体到我们的功能测试套件中,以确保我们以后不会再搞砸了。 或者至少我们不会以这种非常具体的方式搞砸它。 :P
非常非常感谢您提供最少的复制代码。 它极大地加快了我扭转这个错误的速度。
它应该在大约 3 周内到达 Insiders 版本。
最有用的评论
谢谢。 幸运/不幸的是,您的工作进展顺利,提交错误的速度比我调查和修复它们的速度要快。
我已在内部将其归档为MSFT:19317384。 有时间我会处理的。