啥也不说,看看代码~~

 

匿名管道的使用_null      HANDLE hWrite;
匿名管道的使用_null      HANDLE hRead;
匿名管道的使用_null
匿名管道的使用_null
匿名管道的使用_null void CParentPipeView::OnPipeCreate()
匿名管道的使用_测试_06匿名管道的使用_command_07 ... {
匿名管道的使用_null_08      // TODO: Add your command handler code here
匿名管道的使用_null_08      SECURITY_ATTRIBUTES sa;
匿名管道的使用_null_08      sa.bInheritHandle = TRUE;
匿名管道的使用_null_08      sa.lpSecurityDescriptor = NULL;
匿名管道的使用_null_08      sa.nLength = sizeof (SECURITY_ATTRIBUTES);
匿名管道的使用_null_08      if ( ! CreatePipe( & hRead, & hWrite, & sa, 0 ))
匿名管道的使用_null_14匿名管道的使用_null_15      ... {
匿名管道的使用_null_08          MessageBox( " 创建匿名管道失败! " );
匿名管道的使用_null_08          return ;
匿名管道的使用_attributes_18      }
匿名管道的使用_null_08      STARTUPINFO sui;
匿名管道的使用_null_08      PROCESS_INFORMATION pi;
匿名管道的使用_null_08      ZeroMemory( & sui, sizeof (STARTUPINFO));
匿名管道的使用_null_08      sui.cb = sizeof (STARTUPINFO);
匿名管道的使用_null_08      sui.dwFlags = STARTF_USESTDHANDLES;
匿名管道的使用_null_08      sui.hStdInput = hRead;
匿名管道的使用_null_08      sui.hStdInput = hWrite;
匿名管道的使用_null_08      sui.hStdError = GetStdHandle(STD_ERROR_HANDLE);
匿名管道的使用_null_08     
匿名管道的使用_null_08      if ( ! CreateProcess( " ../ChildPipe/Debug/ChildPipe.exe " ,NULL,NULL,NULL,TRUE, 0 ,NULL,NULL, & sui, & pi))
匿名管道的使用_null_14匿名管道的使用_null_15      ... {
匿名管道的使用_null_08          CloseHandle(hRead);
匿名管道的使用_null_08          CloseHandle(hWrite);
匿名管道的使用_null_08          hRead = NULL;
匿名管道的使用_null_08          hWrite = NULL;
匿名管道的使用_null_08          MessageBox( " 创建子进程失败! " );
匿名管道的使用_null_08          return ;
匿名管道的使用_attributes_18      }
匿名管道的使用_null_08      else
匿名管道的使用_null_14匿名管道的使用_null_15      ... {
匿名管道的使用_null_08          CloseHandle(pi.hProcess);
匿名管道的使用_null_08          CloseHandle(pi.hThread);
匿名管道的使用_attributes_18      }
匿名管道的使用_command_44 }
匿名管道的使用_null
匿名管道的使用_null void CParentPipeView::OnPipeWrite()
匿名管道的使用_测试_06匿名管道的使用_command_07 ... {
匿名管道的使用_null_08      // TODO: Add your command handler code here
匿名管道的使用_null_08      char buf[] = " http://zhangdali.org " ;
匿名管道的使用_null_08      DWORD dwWrite;
匿名管道的使用_null_08      if ( ! WriteFile(hWrite,buf,strlen(buf) + 1 , & dwWrite,NULL))
匿名管道的使用_null_14匿名管道的使用_null_15      ... {
匿名管道的使用_null_08          MessageBox( " 写入数据失败! " );
匿名管道的使用_null_08          return ;
匿名管道的使用_attributes_18      }
匿名管道的使用_command_44 }
匿名管道的使用_null
匿名管道的使用_null void CParentPipeView::OnPipeRead()
匿名管道的使用_测试_06匿名管道的使用_command_07 ... {
匿名管道的使用_null_08      // TODO: Add your command handler code here
匿名管道的使用_null_08      char buf[ 100 ];
匿名管道的使用_null_08      DWORD dwRead;
匿名管道的使用_null_08      if ( ! ReadFile(hRead,buf, 100 , & dwRead,NULL))
匿名管道的使用_null_14匿名管道的使用_null_15      ... {
匿名管道的使用_null_08          MessageBox( " 读取数据失败! " );
匿名管道的使用_null_08          return ;
匿名管道的使用_attributes_18      }
匿名管道的使用_null_08      MessageBox(buf);
匿名管道的使用_command_44 }
匿名管道的使用_null
匿名管道的使用_null
匿名管道的使用_null void CChildPipeView::OnPipeRead()
匿名管道的使用_测试_06匿名管道的使用_command_07 ... {
匿名管道的使用_null_08      // TODO: Add your command handler code here
匿名管道的使用_null_08      char buf[ 100 ];
匿名管道的使用_null_08      DWORD dwRead;
匿名管道的使用_null_08      if ( ! ReadFile(hRead,buf, 100 , & dwRead,NULL))
匿名管道的使用_null_14匿名管道的使用_null_15      ... {
匿名管道的使用_null_08          MessageBox( " 读取数据失败! " );
匿名管道的使用_null_08          return ;
匿名管道的使用_attributes_18      }
匿名管道的使用_null_08      MessageBox(buf);
匿名管道的使用_command_44 }
匿名管道的使用_null
匿名管道的使用_null void CChildPipeView::OnPipeWrite()
匿名管道的使用_测试_06匿名管道的使用_command_07 ... {
匿名管道的使用_null_08      // TODO: Add your command handler code here
匿名管道的使用_null_08      char buf[] = " 匿名管道测试程序 " ;
匿名管道的使用_null_08      DWORD dwWrite;
匿名管道的使用_null_08      if ( ! WriteFile(hWrite,buf,strlen(buf) + 1 , & dwWrite,NULL))
匿名管道的使用_null_14匿名管道的使用_null_15      ... {
匿名管道的使用_null_08          MessageBox( " 写入数据失败! " );
匿名管道的使用_null_08          return ;
匿名管道的使用_attributes_18      }
匿名管道的使用_command_44 }