jjzjj

ReadConsole

全部标签

windows - SetConsoleActiveScreenBuffer 使 ReadConsole 返回 ERROR_SHARING_VIOLATION

当我使用创建的缓冲区调用SetConsoleActiveScreenBuffer()时,它似乎使ReadConsole停止使用ERROR_SHARING_VIOLATION。我检查了句柄权限,据我所知,它们是正确的。如果我注释掉SetConsoleActiveScreenBuffer行,输入将完美运行。我可能在这里做错了什么?我还尝试过使用ReadFile而不是ReadConsole,并使用CreateFile而不是GetStdHandle获取输入缓冲区。两种方式,都会出现同样的错误。#includeintmain(){void*oldScreenBuffer;void*screenB

c++ - 赢 api readConsole()

我正在尝试使用WinAPIReadConsole(...),我想传入一个分隔符字符以停止来自控制台的输入。下面的代码有效,但它只会停止读取\r\n上的输入。例如,我希望它停止读取'.'上的控制台输入。voidread(char*cIn,chardelim){HANDLEhFile;DWORDcharsRead;DWORDcharsToRead=MAX_PATH;CONSOLE_READCONSOLE_CONTROLcReadControl;cReadControl.nLength=sizeof(CONSOLE_READCONSOLE_CONTROL);cReadControl.nIni

c++ - 为什么在循环中调用 ReadConsole 会破坏堆栈?

我已经使用以下代码禁用了行输入:DWORDdwConsoleMode;GetConsoleMode(hStdIn,&dwConsoleMode);dwConsoleMode^=ENABLE_LINE_INPUT;SetConsoleMode(hStdIn,dwConsoleMode);然后我在循环中调用ReadConsole...在循环中:wchar_tcBuf;while(1){/*DisplayOptions*/do{ReadConsole(hStdIn,&cBuf,1,&dwNumRead,NULL);}while(!iswdigit(cBuf));putwchar(cBuf);