我最近在我的应用程序中遇到了以下问题:尽管已经使用 AllocConsole
分配了控制台,但它没有显示任何控制台输出。很快我就发现,这是由于在调用 AllocConsole
之前(隐藏得很深)尝试向控制台写入所致。因此,情况看起来像这样:
Console.WriteLine("Foo"); // no console allocated yet
AllocConsole(); // console window appears
Console.WriteLine("Bar"); // expecting "Bar" in the console, but the console is blank
所以我的问题是:为什么会发生这种情况?我没有看到任何异常(虽然我认为它们可能存在)。
AllocConsole
之后调用Console.OpenStandardOutput()
。这样我就可以确保至少在AllocConsole
之后写入的所有输出都会显示出来。 - Dmitrii Erokhin