- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在尝试获取控制台的输出句柄,但它似乎不起作用。我得到它来设置我的文本的颜色,但它没有改变。
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hOut, 0x0A)
我尝试调试它,但我认为句柄不正确。有没有其他方法可以做到这一点,它不起作用是否正常?有任何修复吗?
谢谢!
编辑: 让我澄清一下,我尝试获取的句柄无效。我不知道如何解决它。我想我会开始寻找替代品;也许我的代码有问题。
最佳答案
标准处理程序在进程创建期间初始化,如果您调用 AllocConsole
,新控制台将在很晚之后创建。 AllocConsole
可以更改标准句柄,但对于启动代码(例如 C 运行时库初始化)使用它们来说已经太迟了。
在这种情况下最好的做法是 CreateFileW(L"CONOUT$", ...)
,无论您是否附加到父进程的控制台,操作系统,它都会获得一个控制台句柄为您创建了一个,因为您的 PE header 是 /SUBSYSTEM:CONSOLE
,或者您调用了 AllocConsole
。即使重定向了标准句柄,它也会获得控制台句柄。
如果您认为您可以调用 FreeConsole
,您应该确保首先关闭 CreateFile
返回的所有句柄。在控制台保持事件状态直到进程退出的一般情况下,您可以让操作系统在进程清理期间为您关闭句柄。
关于c++ - 无法获得 AllocConsole 的 STD 句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45822816/
我设置了 Helm 柄和 Helm 柄。我有tiller-deploy。昨天,我可以定期运行了。但今天我收到此错误消息 Error: could not find a ready tiller pod
我以前已将分er安装到特定的 namespace 中。 我设置了一个环境变量来设置'tiller'命名空间-但我不记得该环境变量的名称-而且似乎无法通过网络搜索找到它。 这是什么 key ? 最佳答案
当我在 View 模型中使用如下界面时 class MainViewModel @ViewModelInject constructor( private val trafficImagesR
我正在尝试找到如何在某个 fragment 相关场景中定义 Hilt 的解决方案。我有以下设置: Activity 父 fragment 1 子 fragment 1 子 fragment 2 ...
Hilt 指出如果没有@Provides 注解就不能提供这个接口(interface): interface PlannedListRepository { fun getAllLists()
我的问题非常简单明了:两个注释/示例之间有什么区别: 例子一 @Singleton class MySingletonClass() {} @Module @InstallIn(FragmentCom
我是一名优秀的程序员,十分优秀!