mingw-w64 是否支持 WinPty?

Is there support for WinPty in mingw-w64?

上下文:我们正在从 linux (ubuntu) 构建跨平台应用程序。我们使用 ubuntu 包中可用的 mingw-w64(撰写本文时为 v7.0.0-2)。 我们想开始使用 Windows ConPTY API(又名伪控制台)。 mingw-w64 是否支持 ConPTY? 有人做过吗? 谢谢

看起来 ConPTY 专用功能仅针对 windows WINNT 和 windows NTDDI 版本 _WIN32_WINNT_WIN10NTDDI_WIN10_RS5 或更高版本启用。 MinGW(7.0.0-2)默认设置WINNT版本为_WIN32_WINNT_WS03(Windows Server 2003)

通过在包含 windows.h 之前手动设置这些值,可以将 ConPTY 函数与 Ubuntu 的 MinGW-w64 软件包 v7.0.0-2 一起使用。

示例代码:

#define NTDDI_VERSION 0x0A000006 //NTDDI_WIN10_RS5
#undef _WIN32_WINNT
#define _WIN32_WINNT 0x0A00 // _WIN32_WINNT_WIN10
#include <windows.h>
#include <wincon.h>
CreatePseudoConsole(size, inputReadSide, outputWriteSide, 0, &hPC);