在Delphi控制台应用程序中打开stdin/stdout上的TStream

Joe*_*ite 28 delphi stdin stdout console-application tstream

我正在尝试编写一个Delphi控制台应用程序,为其标准输入创建一个TStream,为其标准输出创建另一个TStream.

(它将由主机应用程序启动,其输入和输出重定向到管道,并将二进制数据传入/传出该主机应用程序,因此TStream将比ReadLn/WriteLn更适合于该任务.)

如何在标准输入或标准输出上打开TStream?

All*_*uer 37

脱离我的头顶:

  InputStream := THandleStream.Create(GetStdHandle(STD_INPUT_HANDLE));
  OutputStream := THandleStream.Create(GetStdHandle(STD_OUTPUT_HANDLE));
Run Code Online (Sandbox Code Playgroud)

放手吧......

  • 确实如此,非常好.谢谢! (5认同)
  • 请注意,您需要在 GetStdHandle 函数的 uses 子句中使用 Windows 单元。 (2认同)
  • 有跨平台的方法可以做到吗? (2认同)