是否允许将 NULL 作为句柄传递给 SetStdHandle 以禁用 stdout?

Law*_*ton 6 c# stdout

我遇到了与这里类似的问题,我有一个写入 stdout 的 P/Invoked 第三方 DLL,我想防止这种情况发生。就我而言,我不想将其重定向到日志文件,而是忽略它。

SetStdHandle(StdOuputHandle, IntPtr.Zero)使用这样做是否正确?

在我的测试中,这似乎有效,但我找不到任何文档表明允许传递 NULL 并将产生所需的效果。

GetStdHandle文档指出:

如果应用程序没有关联的标准句柄(例如在交互式桌面上运行的服务)并且未重定向它们,则返回值为 NULL。

但这与 NULL 意味着取消 SetStdHandle 中现有标准句柄的关联的明确文档相去甚远。