在 VCL 应用程序中使用控制台

Using console in VCL applications

有没有办法在 VCL 应用程序中使用控制台进行输出? cout 实际上在 VCL 应用程序中将流定向到哪里?

我是这样做的:

void TForm1::Button1Click(TObject *Sender)
{
    out_to_console("Some text\n");
}
void out_to_console(std::string str)
{
    AllocConsole() ;
    AttachConsole(GetCurrentProcessId()) ;
    std::freopen("CON", "w", stdout) ;
    std::cout<<str;
}

还有两个问题悬而未决:

  1. 为什么我需要转义序列 \n 才能在控制台上看到文本 Some text
  2. stdout在 VCL 应用程序中指向哪里?