亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Windows > 正文

windows下利用文件映射實現(xiàn)共享內(nèi)存

2020-05-27 13:11:27
字體:
供稿:網(wǎng)友

windows下利用文件映射實現(xiàn)共享內(nèi)存的辦法比較簡單,下面是實現(xiàn)代碼,細節(jié)用注釋說明.調(diào)用類似linux下shm的操作.該類沒有進行太多的測試,歡迎提出問題和bug~~:)#include <windows.h>#include <string>#include <iostream>#include <assert.h>using std::string;using std::cout;using std::endl;#pragma warning(disable: 4311)class shareMemory{private: LPWSTR shm_name_u; bool is_create_file; void * sh_base; HANDLE semaphore; HANDLE file_mapping; int addr_len;public:/*create_file用來說明是用磁盤文件映射還是頁文件映射,如果用磁盤文件映射,共享內(nèi)存不會出現(xiàn)存儲器release后出現(xiàn)違規(guī)訪問的問題,但是會在磁盤上建立一個文件,文件的名稱由參數(shù)shm_name給定.如果用頁文件映射,則不會在磁盤上建立一個文件*/ shareMemory(const string& shm_name, bool create_file=false):is_create_file(create_file) { const char * _c_shm_name = shm_name.c_str(); int _size =(int)shm_name.length()+1; shm_name_u=(LPWSTR)malloc(_size*2); MultiByteToWideChar(CP_ACP,0,_c_shm_name,_size,shm_name_u,_size); semaphore = CreateSemaphore(NULL,1,1,NULL); sh_base = NULL; file_mapping = INVALID_HANDLE_VALUE; } void * shm_open(void* addr,const int length, DWORD protect) { addr_len = length; HANDLE _file_handle = INVALID_HANDLE_VALUE; if(is_create_file) { _file_handle= CreateFile(shm_name_u,GENERIC_READ|GENERIC_WRITE,0, NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);#ifdef _DEBUG if(_file_handle==INVALID_HANDLE_VALUE) cout<<"can not create file! we use page file instead!";#endif //end _DEBUG }/*打開指定名稱的文件映射,如果不存在則創(chuàng)建一個*/ file_mapping = OpenFileMapping(PAGE_READWRITE,false,shm_name_u ); if(file_mapping!=NULL) goto file_mapping_exist; file_mapping = CreateFileMapping(_file_handle,NULL,PAGE_READWRITE, 0,length,shm_name_u);#ifdef _DEBUG assert(file_mapping);#endif if(file_mapping==NULL) return NULL;file_mapping_exist: sh_base = MapViewOfFileEx(file_mapping,protect,0,0,length,addr); CloseHandle(_file_handle); return sh_base; } /*往共享內(nèi)存中寫數(shù)據(jù),返回寫出數(shù)據(jù)的字節(jié)個數(shù)*/ int shm_write(void *dest, void * src, int size) { if(!check_adress(dest)) return -1; int _write_count = (int)sh_base+addr_len - (int)dest; if(_write_count>size) _write_count = size;/*利用semaphore進行保護映射的區(qū)域(同一進程的不同線程調(diào)用時候才進行保護)*/ WaitForSingleObject(semaphore,INFINITE); memcpy(dest,src,_write_count); ReleaseSemaphore(semaphore,1,NULL); FlushViewOfFile(sh_base,_write_count); return _write_count; } /*從共享內(nèi)存中讀數(shù)據(jù),返回讀出的數(shù)據(jù)字節(jié)個數(shù)**/int shm_read(void* src, void * dest, int size) { if(!check_adress(src)) return -1; int _read_count = (int)sh_base+addr_len -(int) src; if(_read_count>size) _read_count = size; memcpy(dest,src,_read_count); return _read_count; } ~shareMemory() { UnmapViewOfFile(sh_base); free(shm_name_u); CloseHandle(semaphore); CloseHandle(file_mapping); }private :/*進行地址檢測*/ bool check_adress(void* addr) { if( ( (int)addr <(int)sh_base) || ((int)addr > (int)sh_base+addr_len) ) { SetLastError(ERROR_ACCESS_DENIED);#ifdef _DEBUG printf("access denied,the destination address out of the map view!");#endif //_DEBUG return false; } return true; }};

測試:寫進程的主函數(shù):

int main(){ shareMemory sm("boost", false); void * bs = sm.shm_open(NULL,1000*4,FILE_MAP_WRITE); if(bs==NULL) return -1; int a[10]; for(int i=0; i<10; ++i) a[i] = i; sm.shm_write(bs,a,10*4); Sleep(100000);}讀進程的主函數(shù):

 

 

int main(){ shareMemory sm("boost", false); void * bs = sm.shm_open(NULL,1000,FILE_MAP_READ); if(bs==NULL) { cout<<"null"; return -1; } int b[10]; sm.shm_read(bs,b,10*4); for(int i=0; i<10; ++i) cout<<b[i]<<" ";}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
快播亚洲色图| 性猛交富婆╳xxx乱大交天津| 成人免费在线| 不卡视频观看| 风间由美性色一区二区三区四区| 久久黄色网页| 热这里只有精品| 国产精品欧美久久久久天天影视| 精品日本美女福利在线观看| 欧美激情精品久久久久久| 国产精品国产一区二区| 蜜臀av性久久久久av蜜臀妖精| 欧美黑人xxxxx性受| 国产白嫩美女无套久久| 伊人天天综合| 中文字幕日韩精品一区二区| 亚洲自拍偷拍在线| gogogogo高清视频在线| 国产精品www994| 国产一二三四在线| 伊人狠狠色j香婷婷综合| 欧美成人一二三区| 天天好比中文综合网| 欧美.日韩.国产.一区.二区| 亚洲jjzzjjzz在线观看| 亚洲视频在线播放| 91网站观看| 欧美色视频一区| 一二三区视频在线观看| 中文字幕免费高清| 亚洲欧洲在线观看av| 亚洲成人www| 在线观看电影av| 欧美jizzhd欧美精品巨大| 国产精品啪视频| 91视频 - 88av| 久久久久久免费看| 成人免费毛片嘿嘿连载视频| 日韩电影在线观看一区| 狠狠躁夜夜躁av无码中文幕| 成人激情免费视频| 亚洲天天综合| 国产免费一级视频| 欧美绝顶高潮抽搐喷水合集| 国产亚洲毛片在线| 一本色道久久综合熟妇| 国产人妻人伦精品1国产丝袜| 久久麻豆视频| 国产精品888| 久久婷婷国产综合国色天香| 日本亚洲欧美成人| 91九色蝌蚪91por成人| 噜噜噜狠狠夜夜躁精品仙踪林| 在线观看av资源网| 在线国产情侣| 男人的天堂久久久| 国产精品视频地址| 欧洲精品久久久久毛片完整版| 成人黄色免费网站在线观看| 国产精品久久无码| 国产欧美一区二区在线| 亚洲精品福利资源站| 视频一区二区不卡| 2019中文字幕视频| 538国产精品一区二区在线| 国产欧美三级| 91精品91久久久中77777| 中文在线资源天堂| 福利视频导航网| 麻豆传媒一区| 日韩精品在线播放视频| 亚洲国产中文在线| 综合激情国产一区| 久久精品美女| 国产免费一级| 少妇真人直播免费视频| 中文在线一区二区三区| 成人永久免费| 免费一级全黄少妇性色生活片| 在线观看a级片| 欧美大尺度在线观看| 国产精品无码一区二区桃花视频| 亚洲精品字幕在线观看| www.五月天激情| 亚洲娇小xxxx欧美娇小| 在线观看美女av| 91麻豆视频网站| 国产真实的和子乱拍在线观看| 欧美日韩一区二区三区不卡| 在线视频国产日韩| 国产精品av免费在线观看| 欧美日韩国产探花| 毛片av免费在线观看| 68精品国产免费久久久久久婷婷| 网站免费满18成年在线观看| 大陆一级毛片免费观看| 成人精品免费视频| 26uuu色噜噜精品一区二区| av中文字幕免费在线观看| 久久久久久久久久久久久国产精品| 蜜桃视频在线观看网站| 日本中文字幕在线视频观看| 性欧美大胆高清视频| 国内精品久久久久久不卡影院| 中文字幕人妻一区二区| 一区二区视频在线看| 国产在线精品一区二区中文| 亚洲一区二区在线免费观看视频| 男男互摸gay网站| 久久精品国产亚洲精品2020| 丁香婷婷综合激情| 欧美激情一区二区三区p站| 手机毛片在线观看| 欧美极品在线| 成人综合在线观看| 97理论电影| 超碰人人草人人| 国产美女性感在线观看懂色av| 日韩在线一区二区三区| 在线黄色的网站| 91免费视频网站在线观看| 国产又粗又黄又爽视频| 国产v日韩v欧美v| 日韩美女黄色片| 麻豆精品国产传媒| 一区二区三区黄| 欧美成人精品一区二区| 夜鲁很鲁在线视频| 最近中文字幕在线| 亚洲激情亚洲| 久久这里有精品15一区二区三区| 亚洲国产婷婷香蕉久久久久久99| 国产精品久久久久aaaa| 免费人成在线观看| 91人成网站www| 成人短视频下载| 岛国视频免费在线观看| 亚洲一区二区三区无码久久| 成人啊v在线| 国产精品久久久久久超碰| 天天综合视频在线观看| 国产精品系列在线| 日韩精品中文字幕在线观看| 国产男小鲜肉同志免费| 看全色黄大色大片免费久久久| 青春娱乐分类视频精品2动漫| 又黄又爽又色的视频| 一本色道久久综合亚洲精品小说| 理论片午夜视频在线观看| 欧美欧美午夜aⅴ在线观看| 九九这里只精品视在线99| 视频精品导航| 午夜欧美视频在线观看| 国产精品入口| 国产欧美久久久久久| 中文字幕福利视频| 欧美美女色图| 在线不卡中文字幕播放| 美女做暖暖视频免费在线观看全部网址91| 欧美日韩亚洲综合一区二区三区激情在线| 国产精品人人爱一区二区白浆| 日本不卡视频一区| 桃花岛tv亚洲品质| 久9re热视频这里只有精品| 一女三黑人理论片在线| 日本三级视频在线播放| 91国产丝袜在线播放| 99久久国产宗和精品1上映| 亚州av影院| 亚洲一区二区中文在线| 国产精品69久久久久| 麻豆久久久9性大片| av福利精品导航| 亚洲国产成人在线观看| www.亚洲免费视频| 精品久久一区二区三区蜜桃| 欧美在线视频一区二区| 亚洲资源网你懂的| 国产精品免费一区二区三区在线观看| 国产乱人伦真实精品视频| 夜夜骑日日操| 国产精品99久久不卡二区| 国产经典一区二区三区| 精品一区二区三区高清免费不卡| 久久久久久日产精品| 蜜桃视频成人| 日日摸夜夜添夜夜添亚洲女人| 狠狠狠色丁香婷婷综合久久五月| 欧美在线性视频| 国产尤物视频| 性做久久久久久久免费看| 国产另类在线| 国产69精品久久久久久| 88av看到爽| 中文字幕伊人| 国产精品亚洲人在线观看| 性欧美极品xxxx欧美一区二区| 91精品国产麻豆国产在线观看| 国产精品美女久久久久久2018| 精品丝袜一区二区三区| 日韩亚洲欧美在线观看| 国产日本欧美一区二区三区在线| 日韩美女免费观看| 手机在线色视频| 国精一区二区三区| 欧美丝袜丝交足nylons图片| 色婷婷av一区二区三区之一色屋| 日韩无码精品一区二区三区| 鲁鲁视频www一区二区| 久久uomeier| 大桥未久av一区二区三区中文| 亚洲图片欧美另类| 97操在线视频| 成人小视频在线观看| 国产精品v欧美精品v日韩精品| 在线成人激情视频| 999在线观看免费大全电视剧| 日b视频在线观看| 亚洲精品欧美在线| 欧美亚洲激情在线| 日日夜夜精品视频免费| 亚洲av无码专区在线播放中文| 亚洲成人精品影院| 黄污视频在线看| 热久久免费视频| 国产超碰97| 中国国产一级毛片| 久久影院模特热| 欧美一区二区三区成人片在线| 相泽南亚洲一区二区在线播放| 亚洲国产精品精华素| 欧美福利视频| 国产在线拍揄自揄拍无码视频| 国产精品久久久亚洲第一牛牛| 丁香花电影在线观看完整版| 欧美一区=区三区| 精品伦精品一区二区三区视频密桃| 欧美色欧美亚洲另类| 成人在线观看www| 亚洲男人天堂2017| 欧美日韩你懂的| 免费观看国产成人| 欧美一区二区三区成人| 国内露脸中年夫妇交换精品| 国产精品99久久久久久有的能看| 久久福利影视| 国产精品男人爽免费视频1| 麻豆精品一区二区av白丝在线| 国产伦精品一区二区免费| 久久精品ww人人做人人爽| 欧美日韩电影免费看| 国产精品视频免费在线| 国产精品毛片a∨一区二区三区|国| 国产午夜精品无码| 貂蝉被到爽流白浆在线观看| 91国模少妇一区二区三区| 中文字幕精品久久久| 欧洲亚洲女同hd| 久久久久久久蜜桃| 97人人澡人人爽91综合色| av在线不卡精品| 啪一啪鲁一鲁2019在线视频| 亚洲片国产一区一级在线观看| 妞干网在线播放| 国产精品久久久久久吹潮| 美国av在线播放| 日韩一区二区三区三四区视频在线观看| 中文字幕视频在线播放| 97公开免费视频| 中文字幕av一区二区三区佐山爱| 麻豆导航在线观看| 国产视频第一区| 麻豆mv在线看| 日韩精品在线观看一区二区| 国产精品视频久久久久久| 国产日韩在线一区二区三区| aaa日本高清在线播放免费观看| 中文字幕精品在线| 在线亚洲国产精品网| 欧美黄免费看| 日本中文字幕一区二区有码在线| 69日本xxxxxxxxx49| 桥本有菜亚洲精品av在线| 亚洲乱码视频| 亚洲精品一二| 欧美美女操人视频| 精品免费国产一区二区| 日本一本草久p| 欧美成人第一区| 欧美h视频在线观看| 成人自拍爱视频| 在线观看亚洲网站| 日本免费在线视频不卡一不卡二| 欧洲有码在线视频| 久久影院视频免费| 视频一区二区视频| 日韩在线免费播放| 欧美成人亚洲高清在线观看| 日韩久久久精品| 香蕉网在线播放| 国产精品suv一区二区三区| k8久久久一区二区三区| 国产精品久久久久久亚洲伦| 日本亚洲精品在线观看| 亚洲制服丝袜在线| 中国老熟女重囗味hdxx| 亚洲日本视频在线| 亚洲理论电影| 国产精品久久久免费观看| 超碰高清在线| 男人添女人下部高潮视频在线观看| 欧美xxxx网站| 毛片女人与拘交视频| 国产一区二区影院| www.亚洲免费视频| 91香蕉嫩草影院入口| 一区二区三区四区在线播放| 日韩av最新在线观看| 麻豆最新免费在线视频| 91小视频免费看| 三级毛片在线免费看| 美女视频黄免费的久久| 中文字幕一区二区三区四区| 国产喷水theporn| 中文字幕欧美视频在线| 久久99久久亚洲国产| 久久精品91久久久久久再现| 免费偷拍视频网站|