1.匿名管道
匿名管道式乙個沒有命名的單向管道。通常用來在子程序和父程序之間通訊。不能夠實現跨網路通訊。只能在父程序中呼叫createprocess函式來穿件子程序,將管道的讀、寫控制代碼傳遞給子程式。
建立匿名管道:
bool createpipe(); 此函式的第三個引數必須夠著乙個security_attributes的結構體變數。
當乙個子程序從其父程序繼承了匿名管道的控制代碼後,這2個程序就可以通過該控制代碼進行通訊了。
bool createprocess(...);
具體實現:
1、首先在view類中定義2個成員變數:hread和hwrite,並在析構函式中釋放
2、建立匿名管道
注意:在使用startupinfo機構變數時,只是用到了其中一部分值。因此首先要使用zeromemory()函式將其中的變數初始化為0(否者其中的變數為隨機值)。
然後將子程序的標準輸入和輸出控制代碼分別設定為管道的讀、寫控制代碼。
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);
當建立乙個新的程序時候,系統會為該程序建立乙個程序核心物件和乙個縣城核心物件,而核心物件都有個一使用計數器。當createprocess函式在內部開啟這些物件時候,其使用計時器就加一。
使用readfile()函式從匿名管道的讀控制代碼從管道中讀取資料。
writefile()實現
獲取管道的讀取和寫入控制代碼
hread=getstdhandle(std_input_handle);
......
2.讀取資料
3.寫入資料
windows程序間通訊
摘 要 隨著人們對應用程式的要求越來越高,單程序應用在許多場合已不能滿足人們的要求。編寫多程序 多執行緒程式成為現代程式設計的乙個重要特點,在多程序程式設計中,程序間的通訊是不可避免的。microsoft win32 api 提供了多種程序間通訊的方法,全面地闡述了這些方法的特點,並加以比較和分析,...
Windows下程序間通訊
1 程序與程序通訊 2 程序通訊方法 2.1 檔案對映 win32 api中共享記憶體 shared memory 實際就是檔案對映的一種特殊情況。程序在建立檔案對映物件時用0xffffffff來代替檔案控制代碼 handle 就表示了對應的檔案對映物件是從作業系統頁面檔案訪問記憶體,其它程序開啟該...
Windows程序間通訊方式
align center windows程序間通訊方式 align 1 檔案對映 win32 api允許多個程序訪問同一檔案對映物件,各個程序在它自己的位址空間裡接收記憶體的指標。通過使用這些指標,不同程序就可以讀或修改檔案的內容,實現了對檔案中資料的共享。應用程式有三種方法來使多個程序共享乙個檔案...