VC中进程间共享内存实现

VC++6.0共享内存技术总结

程序1 -- 建立共享区,写数据:

Cpp代码
  1. int main(int argc, charargv[])  
  2.  
  3.  HANDLE lhShareMemory;  
  4.  charlpBuffer NULL;  
  5.    
  6.  lhShareMemory CreateFileMapping(HANDLE(0xFFFFFFFF), NULL, PAGE_READWRITE,  
  7.   0, 10, "mySharedMemory");  
  8.    
  9.  if (NULL == lhShareMemory)  
  10.   
  11.    if (ERROR_ALREADY_EXISTS == GetLastError())  
  12.     
  13.     cout << "Already exists!" 
  14.     
  15.    else  
  16.     
  17.     cout << "Create Sheared Memory unsuccessfully!" 
  18.     
  19.    return 0;  
  20.   
  21.    
  22.  lpBuffer (char*)MapViewOfFile(lhShareMemory, FILE_MAP_WRITE, 0, 0, 10);  
  23.  if (NULL == lpBuffer)  
  24.   
  25.    cout << "Get Share memory unsuccessfully!" 
  26.    return 0;  
  27.  
  28.  strcpy(lpBuffer, "hello"); 
  29.  cout << "进程通信:采用共享内存" << endl;  
  30.  cout << "写进程" << endl; 
  31.  cout << "写入数据:"<< endl<<lpBuffer << endl;  
  32.  Sleep(100000);  
  33.  UnmapViewOfFile(lpBuffer);
  34.  return 0; 
  35.  
  36.    
  37. 程序2 -- 使用共享区,读数据:
  38. Cpp代码
    1. int main(int argc, charargv[])  
    2.  
    3.   HANDLE lhShareMemory;  
    4.   charlpcBuffer;  
    5.    
    6.   lhShareMemory OpenFileMapping(FILE_MAP_READ, false"mySharedMemory");  
    7.   if (NULL == lhShareMemory)  
    8.    
    9.    cout << "Open share memory unsuccessfully!" << endl;  
    10.    DWORD ldwError GetLastError();  
    11.    cout << ldwError;  
    12.    return 0;  
    13.    
    14.    
    15.   lpcBuffer (char*)MapViewOfFile(lhShareMemory, FILE_MAP_READ, 0, 0, 100);  
    16.   if (NULL == lpcBuffer)  
    17.    
    18.    cout << "Open share memory unsuccessfully!" 
    19.    return 0;  
    20.    
    21.   cout << "进程通信:采用共享内存" << endl;  
    22.   cout << "读进程" << endl;  
    23.   cout << "读入数据:" << endl;  
    24.   for (int 0; 100; ++i)  
    25.    
    26.    cout << *(lpcBuffer i);  
    27.     
    28.  UnmapViewOfFile(lpcBuffer); 
    29.  return 0;  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值