gpt4 book ai didi

windows - SetConsoleScreenBufferInfoEx ...错误?

转载 作者:可可西里 更新时间:2023-11-01 14:23:24 24 4
gpt4 key购买 nike

每次我运行此代码(在 Win7 上)时,控制台在两个方向上都会变小 1 个字符。

int wmain( INT argc, WCHAR **argv )  
{
CONSOLE_SCREEN_BUFFER_INFOEX csbi;
csbi.cbSize = sizeof(CONSOLE_SCREEN_BUFFER_INFOEX);
GetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
wprintf(L"Window: %u x %u\n", csbi.srWindow.Right - csbi.srWindow.Left + 1, csbi.srWindow.Bottom - csbi.srWindow.Top + 1);
SetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
return 0;
}

我怀疑这是预期的行为。它有记录吗?在较新版本的 Windows 中是否更好?这是运行它几次的片段。

p:\test\release> 测试.exe
窗口:99 x 41

p:\test\release> 测试.exe
窗口:98 x 40

p:\test\release> 测试.exe
窗口:97 x 39

最佳答案

Windows 控制台 API 中长期存在的“无法修复”错误。你只需要做其他人所做的,并在阅读后递增 window.Bottom 和 window.Right。

GetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &csbi)
++csbi.srWindowBottom;
++csbi.srWindowRight;

关于windows - SetConsoleScreenBufferInfoEx ...错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35901572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com