【发布时间】:2016-12-10 21:06:35
【问题描述】:
根据 MSDN,SetConsoleMode() 函数的 dwMode 参数应该允许 ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x04)。
我的 Visual Studio(2013 Ultimate with Update 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。
【问题讨论】:
-
Win10 SDK中添加的。您的 SDK 较旧,可能是 8.1。我假设您还需要 Win10 才能使用它。不确定,您必须尝试一下。
-
在VS 2017中定义。感谢代码示例!