使用管道 Win32 连续读取/写入数据

发布于 2024-09-09 01:37:48 字数 280 浏览 4 评论 0原文

我正在尝试使用 WinAPI 在 Win32 中为命令行程序编写 GUI 程序(所以请不要使用 MFC)。在我当前的尝试中,我正在创建一个输入管道和一个输出管道来读取/写入数据。然而,当我尝试连续读取程序或在一次读取后简单地写入时,我的问题就出现了,因为我必须使用“CloseHandle();”的方式。有没有人可以推荐的解决这个问题的好方法?我需要在读取/写入子进程的整个过程中保持子进程打开。也许有比使用 CreatePipe(); 更好的方法吗?和 CreateProcess();要这样做吗?

问候,
丹尼斯·M.

I am trying to write a GUI program for a command line program in Win32 using WinAPI (so please no MFC). In my current attempt, I am creating an input pipe and an output pipe to read/write data. However, my problem comes in when I attempt to continuously read from a program or to simply write after a single read due to the way I have to "CloseHandle();"'s. Is there any good way around this that anyone can recommend? I need to keep the sub-process open the entire time I am reading from/writing to it. Is there perhaps a better way over using CreatePipe(); and CreateProcess(); to do this?

Regards,
Dennis M.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

獨角戲 2024-09-16 01:37:49

您需要使用异步I/O

You need to use Asynchronous I/O.

听,心雨的声音 2024-09-16 01:37:49

我不确定我完全理解你的问题。

我假设您已经看过这篇 MSDN 文章 (http:// /msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx) 并有类似的代码吗?

我发现使用重叠的 I/O 和 I/O 完成端口来处理管道更容易,因此我编写了一个包装器来正确创建管道(http://www.lenholgate.com/blog/2008/02/process-management-using-jobs-on- windows.html)。

I'm not sure I completely understand your problem.

I assume you've seen this MSDN article (http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx) and have code similar to it?

I found it easier to use overlapped I/O and I/O completion ports to handle the pipes, so I wrote a wrapper to create the pipes correctly (http://www.lenholgate.com/blog/2008/02/process-management-using-jobs-on-windows.html).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文