需要用到兩個重要的api
1.handle hfile
2.1 security_attributes :它指明返回的控制代碼是否可以被子程序所繼承,指定乙個安全物件,在建立檔案對映時使用。
2.2 null :(用byval as long傳遞零),表示使用預設安全物件。
3.dword flprotect
3.1 page_readonly 以唯讀方式開啟對映
3.2 page_readwrite 以可讀、可寫方式開啟對映
3.3 page_writecopy 為寫操作留下備份
4.dword dwmaximumsizehigh
檔案對映的最大長度的高32位
5.dword dwmaximumsizelow
檔案對映的最大長度的低32位。
如這個引數和dwmaximumsizehigh都是零,就用磁碟檔案的實際長度。
6.lpcwstr lpname
指定檔案對映物件的名字。如存在這個名字的乙個對映,函式就會開啟它。
用vbnullstring可以建立乙個無名的檔案對映。
mapviewoffile 功能是將乙個檔案對映物件對映到當前應用程式的位址空間。
表示檔案對映起始偏移的高32位
4.dword dwfileoffsetlow
表示檔案對映起始偏移的低32位
5.size_t dwnumberofbytestomap
指定對映檔案的位元組數
在這裡插入**片 }
//給這段映像記憶體的資料賦給本地變數
pstrdata->format(_t("%s"),lpdata);
//sprintf(lpdata,_t("0"));
if(*pstrdata != _t(""))
memset(lpdata,0,data_length);
unmapviewoffile(lpdata);//釋放映像記憶體
return true;
}// _stprintf(lpdata,strdata.getbuffer()); //給這段映像記憶體寫資料
// _swprintf_s(lpdata,strdata);
memcpy(lpdata,strdata.getbuffer(),strdata.getlength()*2);
unmapviewoffile(lpdata); //釋放映像記憶體
return true;
}
記憶體檔案對映 程序間通訊
記憶體對映檔案可以分為兩種 一種是普通的檔案,它需要乙個普通的檔案控制代碼,用於快速的讀寫檔案,這種檔案的資料在程序退出後會儲存在硬碟上,所以程序在下次執行時可以得到之前的資料 另一種是頁檔案,當建立記憶體對映檔案的時候傳入無效的控制代碼,這時會把頁檔案當作臨時的共享儲存空間,當程序退出後這些資料是...
程序間通訊 檔案對映與控制代碼繼承
程序間通訊有多種方法,其中常用的一種便是檔案對映。往往在不同專案中對檔案對映的使用策略也不一樣,這裡拿一種常遇到的情況來說明需要注意的。例如 a程序 system許可權 含有網路模組,負責與伺服器通訊,而b程序 任意使用者 負責實時收集資料,由於b程序處於任意使用者,不能確保它是否能與伺服器通訊,當...
程序間通訊 記憶體對映
程序1的資料有時需要傳送給程序b,這可以通過記憶體對映實現。主要用到的函式 寫方式開啟對映,page writecopy 為寫操作留下備份 dword dwmaximumsizehigh,檔案對映的最大長度的高32位,一般設為0,用低32位一般就夠用了 dword dwmaximumsizelow,...