在windows編程中避免不了使用共享內存,因為他是進程間通信、文件讀取最簡單的方式,有書上還說其他進程間通訊機制如管、油槽、WM_COPYDATA底層也是用的共享內存機制。關于使用方法還是請參考MSDN。
最近聽說使用共享內存不安全,可能會被其他進程野指針無意中訪問到。以前在windows教程中也看到過相關的說法:共享內存是使用的高2G地址空間,用戶態使用的是低2G空間,所有進程是獨享用戶態內存的,但內核態內存是公用的,這樣申請共享內存在內核態就會映射到所有的進程。貌似還挺合理。
還是看MSDN上的文檔怎么說的
MapViewOfFile
也就是說將共享內存手動映射到當前進程后該內存地址才對進程可見。
有疑問才會學習,有求解才有進步!