vc之线程和进程之用命名管道实现进程间通信

vc之线程和进程之用命名管道实现进程间通信

ID:34419009

大小:350.50 KB

页数:8页

时间:2019-03-06

vc之线程和进程之用命名管道实现进程间通信_第1页
vc之线程和进程之用命名管道实现进程间通信_第2页
vc之线程和进程之用命名管道实现进程间通信_第3页
vc之线程和进程之用命名管道实现进程间通信_第4页
vc之线程和进程之用命名管道实现进程间通信_第5页
资源描述:

《vc之线程和进程之用命名管道实现进程间通信》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一、创建应用工程       1、创建单文档应用工程        2、添加新单文档应用工程二、编辑菜单项       1、编辑Thread工程之菜单项       2、编辑Child工程之菜单项三、添加变量、函数       1、添加变量             a、为CThreadView类添加变量             b、为CChildView类添加变量       2、添加函数             a、为CThreadView类添加菜单消息响应函数             b、为CChildView类添

2、加菜单消息响应函数四、添加代码       1、为CThreadView类添加代码             a、添加初始化代码CThreadView::CThreadView(){ //TODO:addconstructioncodehere   pipe=NULL;}CThreadView::~CThreadView(){ if(pipe) CloseHandle(pipe);}             b、添加消息响应函数代码voidCThreadView::OnPipeCreate(){ //TODO:Addyo

3、urcommandhandlercodehere pipe=CreateNamedPipe("\\.\pipe\mypipe",PIPE_ACCESS_DUPLEX

4、FILE_FLAG_OVERLAPPED,0,1,1024,1024,0,NULL); if(INVALID_HANDLE_VALUE==pipe) {  MessageBox("管道创建失败");  pipe=NULL;  return; } HANDLEevent; event=CreateEvent(NULL,TRUE,FALSE,NULL)

5、; if(!event) {  MessageBox("事件对象创建失败");  CloseHandle(pipe);  pipe=NULL;  return; } OVERLAPPEDoverlap; ZeroMemory(&overlap,sizeof(OVERLAPPED)); overlap.hEvent=event; ConnectNamedPipe(pipe,&overlap);                                   //等待客户端连接   WaitForSingleObjec

6、t(event,INFINITE); }voidCThreadView::OnPipeRead(){ //TODO:Addyourcommandhandlercodehere  charreadbuf[100]; DWORDdwread; ReadFile(pipe,readbuf,100,&dwread,NULL);  MessageBox(readbuf); }voidCThreadView::OnPipeWrite(){ //TODO:Addyourcommandhandlercodehere  charbuf[

7、]="你好,长江!"; DWORDdwwrite; WriteFile(pipe,buf,strlen(buf)+1,&dwwrite,NULL); }       2、为CChildView类添加代码             a、添加初始化代码CChildView::CChildView(){ //TODO:addconstructioncodehere   pipe=NULL;}CChildView::~CChildView(){ if(pipe)  CloseHandle(pipe);}             

8、b、添加消息响应函数代码voidCChildView::OnConnect(){ //TODO:Addyourcommandhandlercodehere WaitNamedPipe("\\.\pipe\mypipe",NMPWAIT_WAIT_FOREVER); pipe=CreateFile"\\.\pipe\mypipe",GENERIC_READ

9、GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); }voidCChild

10、View::OnRead(){ //TODO:Addyourcommandhandlercodehere  charreadbuf[100]; DWORDdwread; ReadFile(pipe,readbuf,100,&dwread,NULL);  MessageBox(readbuf); }voidCChildView::O

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。