SetConsoleScreenBufferInfoEx …错误?

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

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: %ux %u\n", csbi.srWindow.Right - csbi.srWindow.Left + 1, csbi.srWindow.Bottom - csbi.srWindow.Top + 1); SetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &csbi); return 0; } 

我怀疑这是预期的行为。 有logging吗? 在新版本的Windows中更好吗? 这是一个运行几次的剪辑。

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

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

p:\ test \ release> test.exe
窗口:97×39