c++共享内存操作实例

原创 2012年03月21日 22:42:41

  

1、创建共享内存 

       HANDLE hMapping;

LPTRANSDATA lpData;   //要发送的结构体
hMapping = CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,1024,SHAREMEM_CMD_SEND);

if (hMapping != NULL)
{
lpData = (LPTRANSDATA)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);
if (lpData == NULL)
{
CloseHandle(hMapping);
hMapping = NULL;
AfxMessageBox("MapViewOfFile() failed.");
return;
}
}
else
{
AfxMessageBox("CreateFileMapping() failed.");
return;
}
CopyMemory(lpData,lpMsg,sizeof(LPTRANSDATA));


2、打开创建的映射文件

         HANDLE hMapping;
hMapping = OpenFileMapping(FILE_MAP_READ,FALSE,SHAREMEM_CMD_SEND);
if (hMapping == NULL)
{
MessageBox("hMapping == NULL");
return NULL;
}
transData = (LPTRANSDATA)MapViewOfFile(hMapping,FILE_MAP_READ,0,0,0);
if (transData == NULL)
{
CloseHandle(hMapping);
MessageBox("str == NULL");
return NULL;
}

if (transData  != NULL)
{
UnmapViewOfFile(transData );
transData = NULL;
}
if (hMapping != NULL)
{
CloseHandle(hMapping);
hMapping = NULL;

}


【C++】使用共享内存实现进程间通信

// ServerCom.cpp : Defines the entry point for the console application. // #include "stdafx.h" #in...
  • Taily_Duan
  • Taily_Duan
  • 2016年06月16日 16:46
  • 3442

进程间通信_共享内存类_C++实现

本文转自: 忘记是从哪里整理的一个类了,但非常好用,可以将其放在自己的项目中实现不同进程间数据的通信。   头文件: [cpp] view plaincop...
  • hzqhbc
  • hzqhbc
  • 2014年04月24日 13:43
  • 7867

C/C++ 日常学习总结(第二十二篇)共享内存实现C++

大家都知道进程之间的通信可以使用共享内存
  • wu_123_456
  • wu_123_456
  • 2014年09月23日 14:11
  • 2155

一个C++的共享内存类

  • 2009年06月11日 15:31
  • 61KB
  • 下载

进程间通信_共享内存类_C++实现

头文件: [cpp:nogutter] view plaincopyprint? /****************************************************...
  • chinabinlang
  • chinabinlang
  • 2012年10月22日 13:53
  • 2245

Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile

进程间的通信方式有很多种, 上次我们说了最傻瓜的“共享文件”的方法。
  • stpeace
  • stpeace
  • 2014年09月25日 21:47
  • 11543

如何在共享内存上创建C++对象

游戏中通常会使用共享内存来存放一些数据,这样当程序二进制更新(只涉及代码逻辑变更,不涉及数据结构变更),程序core,异常停止等情况发生时,存放在共享内存中的数据并不会丢失。通过这种方式可以大大减少游...
  • dickyjyang
  • dickyjyang
  • 2014年03月17日 19:10
  • 1311

winodws平台C++共享内存实现

工作中用到本地程序与浏览器插件之间共享数据的需求,因此想到了使用内存共享的方法。     使用平台:windows     使用说明:内存共享分为服务端和客户端,服务端写入数据,客户端读取数据,服务端...
  • shishuo365
  • shishuo365
  • 2012年10月26日 16:30
  • 3144

C++共享内存示例

  • 2017年07月30日 14:49
  • 6KB
  • 下载

C++使用共享内存实现进程间通信

C++使用共享内存实现进程间通信 文件映射是一种实现进程间单向或双向通信的机制。它允许两个或多个本地进程间相互通信。为了共享文件或内存,所有的进程必须使用相同的文件映射的名字或是句柄。 为了实现共...
  • joejames
  • joejames
  • 2014年07月27日 11:00
  • 5216
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++共享内存操作实例
举报原因:
原因补充:

(最多只允许输入30个字)