从控制台运行时从WinMain管道控制台输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从控制台运行时从WinMain管道控制台输出相关的知识,希望对你有一定的参考价值。

我正在尝试通过控制台通过管道从VCL表单应用程序的WinMain函数传递标准输出。

尤其是我需要在控制台中执行此操作:

mywinprogram.exe -v > toMyFile.txt 

我能够使用此处的答案获得输出to控制台:How do I get console output in C++ with a Windows program?

但是将输出管道传输到文件不起作用。

答案

需要一些工作。

  • 创建新的控制台应用程序
  • 目标框架:视觉组件库
  • [x]指定项目来源选择您的VCL项目主文件,该文件包含int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
  • 将此代理功能添加到底部:
    int _tmain(int argc, _TCHAR* argv[]) {
        _tWinMain(HINSTANCE{}, HINSTANCE{}, LPTSTR{}, int{});
    }
    
  • 从您的旧项目添加.cpp.dfm(表单)文件。
  • 编译并感到高兴:-)

如果从Windows运行新的应用程序,它将启动一个新的控制台窗口,但是如果您从一个控制台启动它,它将输出到该控制台-并重定向到文件。

以上是关于从控制台运行时从WinMain管道控制台输出的主要内容,如果未能解决你的问题,请参考以下文章

RichTextbox中显示的实时输出

Azure DevOps 管道“正在等待来自代理的控制台输出......”

从 Apache Beam 管道收集输出并将其显示到控制台

两个控制台应用程序之间的管道?

哪一位VC的高手能告诉我为啥WinMain函数中无法使用Cout或Cin?不胜感激!

Linux学习笔记10——管道和重定义