程序間通訊(基於Windows程式設計)學

2021-07-02 04:41:15 字數 1016 閱讀 4332

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允許多個程序訪問同一檔案對映物件,各個程序在它自己的位址空間裡接收記憶體的指標。通過使用這些指標,不同程序就可以讀或修改檔案的內容,實現了對檔案中資料的共享。應用程式有三種方法來使多個程序共享乙個檔案...