为什么日志输出显示在控制台主机中,而不是在ISE中? (V4.0)

时间:2014-09-23 18:15:11

标签: c++ powershell powershell-v4.0

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

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

当我在ISE中运行相同的程序时,控制台中的文字!这是一个有说服力的线索,我一直在寻找环境差异 - 但是存在大量的环境差异。我应该调查哪些?

1 个答案:

答案 0 :(得分:1)

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