1

我正在引用一个包含 API 所需的 C++ 类的 DLL 文件。据我所知,该类的默认构造函数通过管道将一堵文本墙连接到我无法触摸的流。我一次重定向一个输出流以尝试将其隔离,并达到 6 个而没有成功影响文本。它正在记录数据,在这种情况下我不关心它;我希望它消失。

构造函数不返回文本(对象正常返回成功),它只是在构造函数执行期间发送到控制台。我认为这就是 Out-Null 和 > $null 什么都不做的原因。

当我在 ISE 中运行相同的程序时,控制台中的文本不明显!这是一个有说服力的线索,我去寻找环境差异——但环境差异有很多。我应该调查哪些?

4

1 回答 1

1

我认为重要的区别在于 PowerShell.exe 是一个控制台子系统应用程序。任何到 stdout 的输出(printf、cout << 'foo' 等)都将显示在控制台中。另一方面,ISE 是一个 Windows 子系统应用程序 - 没有控制台。您在 ISE 中看到的控制台窗格只是另一个工具窗口,其外观和行为类似于控制台,就像 Visual Studio 中的 NuGet 包管理器控制台一样。

于 2014-09-24T01:28:49.900 回答