一个间接办法,你可用一个“共享名”申请一块共享内存块,进行读写:
handle getshare(char * &sharep,int size,char *sharename) { //sharep申请的内存块地址,size字节数,sharename共享名 handle fh=createfilemapping((handle)-1,0,page_readwrite,0,size,sharename); sharep=(char *)mapviewoffile(fh,file_map_all_access,0,0,0); if(getlasterror()!=error_already_exists) zeromemory(sharep,size); // 共享区初始化 return(fh); }
char * sharep=null;
void test() // 申请一块128个字节的字符数组 { handle fh=getshare(sharep,128,\"shareformyprog\"); for (int i=0;i<128;i++) sharep[i]=i; closehandle(fh); }
|
如果你的多个程序之间或同一个程序多次同时运行,也可借助这个办法进变量通讯;你的若干个进程可借助于这种办法互相传递数据。