一 利用剪貼簿進行程序間通訊
void cclipboarddlg::onbtnsend()
}void cclipboarddlg::onbtnrecv() }}
二 利用匿名管道進行程序間通訊
(匿名管道只能在父子程序間通訊)
父程序
void cparentview::onpipecreate()
startupinfo sui;
zeromemory
(&sui,sizeof(startupinfo));
sui.cb=sizeof(startupinfo);
sui.dwflags=startf_usestdhandles;
sui.hstdinput=hread;
sui.hstdoutput=hwrite;
sui.hstderror=
getstdhandle
(std_error_handle);
process_information pi;
if(!
createprocess
("..\\child\\debug\\child.exe",null,null,null,
true,0,null,null,&sui,&pi))
else
}void cparentview::onpiperead()
messagebox(buf);
}void cparentview::onpipewrite()
}子程序
void cchildview::oninitialupdate()
void cchildview::onpiperead()
messagebox(buf);
}void cchildview::onpipewrite()
}三 利用命名管道進行程序間通訊
服務端程序
void cnamedpipesrvview::onpipecreate()
handle hevent;
hevent=
createevent
(null,true,false,null);
if(!hevent)
}if(wait_failed==
waitforsingleobject
(hevent,infinite)) //等待事件物件變為有訊號狀態
closehandle(hevent);
}void cnamedpipesrvview::onpiperead()
messagebox(buf);
}void cnamedpipesrvview::onpipewrite()
}客戶端程序
void cnamedpipecltview::onpipeconnect()
hpipe=
createfile
("\\\\.\\pipe\\mypipe",generic_read
| generic_write,
0,null,open_existing,file_attribute_normal,null);
//開啟命名管道
if(invalid_handle_value==hpipe)
}void cnamedpipecltview::onpiperead()
messagebox(buf);}
void cnamedpipecltview::onpipewrite() }
四 利用郵槽進行程序間通訊
服務端程序
void cmailslotsrvview::onmailslotrecv()
char buf[100];
dword dwread;
if(!
readfile
(hmailslot,buf,100,&dwread,null)) //郵槽的服務端只能接收資料
messagebox(buf);
closehandle(hmailslot);
}客戶端程序
void cmailslotcltview::onmailslotsend()
char buf="郵槽測試程式";
dword dwwrite;
if(!
writefile
(hmailslot,buf,strlen(buf)+1,&dwwrite,null)) //郵槽的客戶端只能傳送資料
closehandle(hmailslot);}
跨網路的程序間通訊可用:命名管道和郵槽(郵槽可實現一對多通訊)
郵槽傳送的資料量較小(424位元組),傳送大量資料可採用管道來完成
windows程序間通訊
摘 要 隨著人們對應用程式的要求越來越高,單程序應用在許多場合已不能滿足人們的要求。編寫多程序 多執行緒程式成為現代程式設計的乙個重要特點,在多程序程式設計中,程序間的通訊是不可避免的。microsoft win32 api 提供了多種程序間通訊的方法,全面地闡述了這些方法的特點,並加以比較和分析,...
Windows下程序間通訊
1 程序與程序通訊 2 程序通訊方法 2.1 檔案對映 win32 api中共享記憶體 shared memory 實際就是檔案對映的一種特殊情況。程序在建立檔案對映物件時用0xffffffff來代替檔案控制代碼 handle 就表示了對應的檔案對映物件是從作業系統頁面檔案訪問記憶體,其它程序開啟該...
Windows程序間通訊方式
align center windows程序間通訊方式 align 1 檔案對映 win32 api允許多個程序訪問同一檔案對映物件,各個程序在它自己的位址空間裡接收記憶體的指標。通過使用這些指標,不同程序就可以讀或修改檔案的內容,實現了對檔案中資料的共享。應用程式有三種方法來使多個程序共享乙個檔案...