C++缓冲区备份失败 我正在研究控制台C++项目,其中我需要备份控制台缓冲区,这样我就可以编辑它,并在完成时恢复这些更改。我提出了这两个函数,但都有问题,因为第一个输出的错误代码为1[ERROR\u INVALID\u FUNCTION 1 0x1 ERROR FUNCTION],第二个输出的错误代码为87[ERROR\u INVALID\u PARAMETER 87 0x57参数不正确]。我还检查了文档中的API和API,但找不到解决方案 void backupBuffer(PCHAR_INFO buffer, COORD pos, COORD size) { SMALL_RECT rect = { pos.X, pos.Y, pos.X + size.X - 1, pos.Y + size.Y - 1 }; COORD buffer_index = { 0, 0 }; BOOL success = ReadConsoleOutput(GetStdHandle(STD_OUTPUT_HANDLE), buffer, buffer_index, pos, &rect); if (!success) { int error = GetLastError(); cout << error << endl; } } void setBuffer(PCHAR_INFO buffer, COORD pos, COORD size) { SMALL_RECT rect = { pos.X, pos.Y, pos.X + size.X - 1, pos.Y + size.Y - 1 }; COORD buffer_index = { 0, 0 }; BOOL success = WriteConsoleOutput(GetStdHandle(STD_OUTPUT_HANDLE), buffer, buffer_index, pos, &rect); if (!success) { int error = GetLastError(); cout << error << endl; } }

C++缓冲区备份失败 我正在研究控制台C++项目,其中我需要备份控制台缓冲区,这样我就可以编辑它,并在完成时恢复这些更改。我提出了这两个函数,但都有问题,因为第一个输出的错误代码为1[ERROR\u INVALID\u FUNCTION 1 0x1 ERROR FUNCTION],第二个输出的错误代码为87[ERROR\u INVALID\u PARAMETER 87 0x57参数不正确]。我还检查了文档中的API和API,但找不到解决方案 void backupBuffer(PCHAR_INFO buffer, COORD pos, COORD size) { SMALL_RECT rect = { pos.X, pos.Y, pos.X + size.X - 1, pos.Y + size.Y - 1 }; COORD buffer_index = { 0, 0 }; BOOL success = ReadConsoleOutput(GetStdHandle(STD_OUTPUT_HANDLE), buffer, buffer_index, pos, &rect); if (!success) { int error = GetLastError(); cout << error << endl; } } void setBuffer(PCHAR_INFO buffer, COORD pos, COORD size) { SMALL_RECT rect = { pos.X, pos.Y, pos.X + size.X - 1, pos.Y + size.Y - 1 }; COORD buffer_index = { 0, 0 }; BOOL success = WriteConsoleOutput(GetStdHandle(STD_OUTPUT_HANDLE), buffer, buffer_index, pos, &rect); if (!success) { int error = GetLastError(); cout << error << endl; } },c++,console,buffer,C++,Console,Buffer,我应该怎么做才能解决这个问题?在您的两个函数中,您有: COORD buffer_index = { 0, 0 }; 该参数需要指定CHAR_INFOs中字符信息块的大小。现在你是在告诉它没有地方放副本 COORD buffer_index = { 0, 0 };

我应该怎么做才能解决这个问题?

在您的两个函数中,您有:

COORD buffer_index = { 0, 0 };
该参数需要指定CHAR_INFOs中字符信息块的大小。现在你是在告诉它没有地方放副本

COORD buffer_index = { 0, 0 };