学习VC++深入浅出——匿名管道的使用

学习VC++深入浅出——匿名管道的使用
    HANDLE hWrite;
    HANDLE hRead;


void  CParentPipeView::OnPipeCreate() 
{
    
// TODO: Add your command handler code here
    SECURITY_ATTRIBUTES sa;
    sa.bInheritHandle 
= TRUE;
    sa.lpSecurityDescriptor 
= NULL;
    sa.nLength 
= sizeof(SECURITY_ATTRIBUTES);
    
if(!CreatePipe(&hRead,&hWrite,&sa,0))
    
{
        MessageBox(
"创建匿名管道失败!");
        
return ;
    }

    STARTUPINFO sui;
    PROCESS_INFORMATION pi;
    ZeroMemory(
&sui,sizeof(STARTUPINFO));
    sui.cb 
= sizeof(STARTUPINFO);
    sui.dwFlags 
= STARTF_USESTDHANDLES;
    sui.hStdInput 
= hRead;
    sui.hStdInput 
= hWrite;
    sui.hStdError 
= GetStdHandle(STD_ERROR_HANDLE);
    
    
if(!CreateProcess("../ChildPipe/Debug/ChildPipe.exe",NULL,NULL,NULL,TRUE,0,NULL,NULL,&sui,&pi))
    
{
        CloseHandle(hRead);
        CloseHandle(hWrite);
        hRead 
= NULL;
        hWrite 
=NULL;
        MessageBox(
"创建子进程失败!");
        
return ;
    }

    
else
    
{
        CloseHandle(pi.hProcess);
        CloseHandle(pi.hThread);
    }

}


void  CParentPipeView::OnPipeWrite() 
{
    
// TODO: Add your command handler code here
    char buf[]="http://zhangdali.org";
    DWORD dwWrite;
    
if(!WriteFile(hWrite,buf,strlen(buf)+1,&dwWrite,NULL))
    
{
        MessageBox(
"写入数据失败!");
        
return ;
    }

}


void  CParentPipeView::OnPipeRead() 
{
    
// TODO: Add your command handler code here
    char buf[100];
    DWORD dwRead;
    
if(!ReadFile(hRead,buf,100,&dwRead,NULL))
    
{
        MessageBox(
"读取数据失败!");
        
return ;
    }

    MessageBox(buf);
}



void  CChildPipeView::OnPipeRead() 
{
    
// TODO: Add your command handler code here
    char buf[100];
    DWORD dwRead;
    
if(!ReadFile(hRead,buf,100,&dwRead,NULL))
    
{
        MessageBox(
"读取数据失败!");
        
return ;
    }

    MessageBox(buf);
}


void  CChildPipeView::OnPipeWrite() 
{
    
// TODO: Add your command handler code here
    char buf[]= "匿名管道测试程序";
    DWORD dwWrite;
    
if(!WriteFile(hWrite,buf,strlen(buf)+1,&dwWrite,NULL))
    
{
        MessageBox(
"写入数据失败!");
        
return ;
    }

}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值