根据MSDN,dwMode
函数的SetConsoleMode()
参数应允许ENABLE_VIRTUAL_TERMINAL_PROCESSING
(0x04)。
我的Visual Studio(2013年版更新版5)并未定义该常量。它只有这两个:
#define ENABLE_PROCESSED_OUTPUT 0x0001
#define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002
ENABLE_VIRTUAL_TERMINAL_PROCESSING
被删除了吗?
我试图像这样使用它,以便我可以使用VT100转义序列控制光标。
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD dwMode = 0;
GetConsoleMode(hOut, &dwMode);
dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
SetConsoleMode(hOut, dwMode);
有关参考,请参阅此MSDN article。
答案 0 :(得分:4)
如果您的SDK太旧,可能无法定义ENABLE_VIRTUAL_TERMINAL_PROCESSING
。
您可以使用以下代码手动定义它:
#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
#endif