(可选)为调用过程分配新控制台,同时允许指定新控制台窗口的可见性。
语法
HRESULT WINAPI AllocConsoleWithOptions(
_In_opt_ PALLOC_CONSOLE_OPTIONS allocOptions,
_Out_opt_ PALLOC_CONSOLE_RESULT result
);
参数
allocOptions [in, 可选] 一个ALLOC_CONSOLE_OPTIONS结构,控制此函数如何分配窗口。
result [out, 可选] 接收以下值之一:
| 价值 | 含义 |
|---|---|
| ALLOC_CONSOLE_RESULT_NO_CONSOLE 0 | 未创建控制台,因为使用了 ALLOC_CONSOLE_MODE_DEFAULT ,并且父进程要求不创建任何主机。 |
| ALLOC_CONSOLE_RESULT_NEW_CONSOLE 1 | 由于此调用,创建了一个新的控制台会话。 生成的行为与 AllocConsole 相同。 |
| ALLOC_CONSOLE_RESULT_EXISTING_CONSOLE 2 | 该进程已附加到现有控制台会话,由父进程继承。 生成的行为与 AttachConsole 相同。 |
返回值
类型:HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
与 AllocConsole 或 AttachConsole 不同,当已连接到控制台会话时调用此方法不会导致错误。 在这种情况下,结果参数将设置为 ALLOC_CONSOLE_RESULT_EXISTING_CONSOLE。
进程可以使用 FreeConsole 函数从其当前控制台中分离自身。 当附加到控制台的最后一个进程终止或调用 FreeConsole 时,控制台将关闭。
要求
| 支持的最低客户端 | Windows 11 24H2 (内部版本 26100) [仅限桌面应用] |
| 支持的最低服务器 | Windows Server 2025(内部版本 26100) |
| 标题 | ConsoleApi.h (via WinCon.h, include Windows.h) |
| 图书馆 | Kernel32.lib |
| DLL | Kernel32.dll |