1. 程式人生 > >[原始碼和文件分享]在DLL中建立共享記憶體

[原始碼和文件分享]在DLL中建立共享記憶體

背景

我們都知道在 32 位系統上,每個程序都有自己 4GB 大小的獨立空間,互不影響。當然,對核心瞭解的同學則會質疑說,4GB 大小的內容可以大致分為兩部分,低 2 GB記憶體空間是使用者地址空間,高 2 GB是核心地址空間,而核心地址空間是共享的,並非獨立。是的,這沒錯。所以,本文中所指的獨立空間是使用者地址空間。

舉個例子來說,程序1 的 0x400000 記憶體地址和 程序2 中 0x400000 記憶體地址是沒有任何關聯。任意修改其中一個記憶體裡的資料,是不影響另一個的。這邊是程序獨立性。

但是,本文要介紹的這個知識點,就是要突破這個獨立性的顯示,建立程序共享記憶體。確切的說是在DLL中建立共享記憶體,就是在DLL中建立一個變數,然後DLL被載入到多個程序空間,只要其中一個程序修改了該變數的值,其他程序DLL中的這個值也會改變,就相當於多個程序共享一塊記憶體。


參考文件和完整的文件和原始碼下載地址:

https://www.write-bug.com/article/1594.html