程序間通訊的方法有很多種,共享記憶體只是其中的一種,在這裡分享一下自己的思路,以及寫過的測試**:
在實現共享記憶體用到的關鍵winapi是以下幾個:
mapviewoffile
unmapviewoffile
( handle hfile,
// handle to file
lpsecurity_attributes lpattributes,
// 安全屬性,一般為預設安全屬性
dword flprotect,
// protection
dword dwmaximumsizehigh,
// 高32位,小於4g始終為0
WindowsIPC機制 LPC本地過程呼叫
此處介紹的lpc通訊過程是通過埠進行的。每個服務程式與客戶程式之間是通過乙個客戶端dll相聯絡的,此處用的dll是ntdll,類似於乙個函式存根。當某個客戶程式呼叫其中的api時,api將其處理,並且送給服務程式,服務程式把結果返回給dll,存根函式等到返回值後,再把返回值傳遞給客戶程式。類似於乙個...
CreateFileMapping 共享記憶體
handle hfile,dword flprotect,dword dwmaximumsizehigh,dword dwmaximumsizelow,lpctstr lpname hfile 共享檔案控制代碼,不建立共享檔案,為invalid handle value flprotect 保護選項...
共享記憶體機制
共享記憶體主要是通過對映機制實現的。共享記憶體例項一 include include include include using namespace std int main else getchar 注意,程序關閉後,所有控制代碼自動關閉,所以要在這裡暫停 解除檔案對映,關閉記憶體對映檔案物件控制...