添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
爽快的绿豆  ·  SQLalchemy查询PostgreSQL ...·  1 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

According to MSDN, the dwMode parameter for the SetConsoleMode() function should allow ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x04).

My Visual Studio (2013 Ultimate with Update 5) does not define that constant. It only has these two:

#define ENABLE_PROCESSED_OUTPUT    0x0001
#define ENABLE_WRAP_AT_EOL_OUTPUT  0x0002

Was ENABLE_VIRTUAL_TERMINAL_PROCESSING removed?

I am trying to use it like this, so that I can control the cursor using the VT100 escape sequences.

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD dwMode = 0;
GetConsoleMode(hOut, &dwMode);
dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
SetConsoleMode(hOut, dwMode);

For reference, see this MSDN article.

It was added in the Win10 SDK. Your SDK is older, 8.1 probably. I'd assume you'll also need Win10 to use it. Not sure, you'd have to try. – Hans Passant Aug 4, 2016 at 16:54

If your SDK is too old, ENABLE_VIRTUAL_TERMINAL_PROCESSING may not be defined.

You can manually define it with the following code:

#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
#endif
                I think the problem is that it needs a newer command window .. apparently it is now build into the Windows 10 command window and not the older ones.
– Chris Curl
                Aug 11, 2016 at 14:05
                @AbhinavGauniyal - The API's minimum supported client is Windows 2000. Specific settings may only be supported by later OS releases.
– Rich Turner
                Jun 28, 2018 at 21:06
        

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.