如何使用匿名管道输出重定向

本文介绍了VC++如何利用匿名管道实现多进程通信,并通过IDE集成命令行工具的原理。重点在于创建进程和管道通信技术,以代码示例展示了如何重定向输出。通过理解这些基础知识,可以自行创建类似IDE的工具。
摘要由CSDN通过智能技术生成

VC++在多进程通讯中有一种很好的方法就是使用管道技术。
对于很多的初学者来说,不知道IDE的具体原理是什么,作者也是一样,为此迷惑了很多年,也最近才弄清楚

IDE是如何集成了其他的命令行软件的,比如VC中的cc.exe,cl.exe等Devc++中的gcc,WinTC中集成的tc2.0等。

看起来相当的神秘,其实很简单的。这些IDE就只使用了两种比较核心的技术:一是创建一个进程,比如创建一

个cl.exe的进程;二是利用管道与子进程通信,获取其运行结果,把过程输出和结果输出显示在IDE的输出中!

IDE提供的其他的就是一个代码的编辑环境而已!当然,IDE还做了一件幕后的工作就是根据工程的文件组织生

成了一个MAKEFILE文件。所以,只要你熟悉这两种技术,你也可以编写出一个IDE!

具体我也懒得写了,给段自己的代码出来在这里,自己调试下就知道了。

void CDiaDlg::OnGo()
{
 HANDLE hMutex = CreateMutex(NULL,NULL,"Hello");
 
 if(GetLastError() == ERROR_ALREADY_EXISTS)
 {
  CloseHandle(hMutex);
  hMutex = NULL;

  MessageBox("³ÌÐòÒѾ­ÔËÐУ¡","ÏûÏ¢",MB_OK|MB_ICONINFORMATION);
  return;
 }
 
 //´´½¨Ò»¸öÄäÃû¹ÜµÀ£¬ÓÃÀ´Êä³öÐÅÏ¢µÄÖØ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值