ReadConsoleOutputCharacter-我需要使用哪些参数? 我正在学习C++编程,我用WINDOWS .H库制作小程序。 我需要在我的程序中有一个函数,可以从控制台读取特定单元格中的单个字符。 所以有一个ReadConsoleOutputCharacter函数,它实现了我想要的功能,但我不知道第二个参数应该是什么样子

ReadConsoleOutputCharacter-我需要使用哪些参数? 我正在学习C++编程,我用WINDOWS .H库制作小程序。 我需要在我的程序中有一个函数,可以从控制台读取特定单元格中的单个字符。 所以有一个ReadConsoleOutputCharacter函数,它实现了我想要的功能,但我不知道第二个参数应该是什么样子,c++,windows,console-application,C++,Windows,Console Application,如microsoft网站所述: 输出LPTSTR LPTR字符 如果有人能提供一些简单的例子来使用这种函数读取单个或多个单元格,那就太好了 提前感谢所有的帮助,我希望我的英语至少是可以理解的 lpCharacter[out] 指向接收字符的缓冲区的指针 从控制台屏幕缓冲区读取 此缓冲区的存储是从 大小为64 KB的进程。缓冲区的最大大小将为 取决于堆的使用情况 那么,当它读取字符时,您希望它将读取的字符放在哪里 您应该有一个用于保存字符的变量,并为lpCharacter传递此变量的地址 第二段确

如microsoft网站所述:

输出LPTSTR LPTR字符

如果有人能提供一些简单的例子来使用这种函数读取单个或多个单元格,那就太好了

提前感谢所有的帮助,我希望我的英语至少是可以理解的

lpCharacter[out]
指向接收字符的缓冲区的指针 从控制台屏幕缓冲区读取

此缓冲区的存储是从 大小为64 KB的进程。缓冲区的最大大小将为 取决于堆的使用情况

那么,当它读取字符时,您希望它将读取的字符放在哪里

您应该有一个用于保存字符的变量,并为lpCharacter传递此变量的地址

第二段确实令人困惑。它似乎与此功能没有任何关联。我忽略了它


当然,如果您试图一次读取多个字符,则需要一个数组来容纳字符,并传递数组开头的地址。

microsoft网站对参数有何说明?这就是我遇到的问题所在。我读过,但不太懂。从microsoft:pCharacter[out]指向接收从控制台屏幕缓冲区读取的字符的缓冲区的指针。此缓冲区的存储是从大小为64 KB的进程的共享堆中分配的。缓冲区的最大大小将取决于堆的使用情况。这是一个MSDN示例。因此,如果我只想读取1个单元格,则char变量可以,对吗?@Hrot是的,除非您启用了unicode,在这种情况下,它将是wchar_t(与所有Windows函数一样;如果您对所有其他函数使用chars,则这也适用于此函数)嗯,好,我现在明白了。感谢您的帮助。第二段适用于Windows 8之前的版本。控制台API的旧实现使用LPC端口在客户端和控制台主机进程之间进行通信(例如,Windows 7中的conhost.exe和以前版本中的csrss.exe)。LPC消息的最大大小很小。对于较大的消息(例如,从控制台屏幕缓冲区读取),服务器和客户端之间共享64K内存段,该内存段作为运行时库堆进行管理。Windows 8切换到使用ConDrv设备而不是LPC,因此有关堆大小的警告不再适用。@eryksun好的,所以它试图说您可以读取的最大字节数非常小。但是它实际上说的是,您必须从一个特殊堆中为这个参数分配您传递的缓冲区。但这是不对的。