c++共享内存(转载)
2024-10-19 04:24:48
对于连个不同的进程之间的通信,共享内存是一种比较好的方式,一个进程把数据发送到共享内存中,
另一个进程可以读取改数据,简单记录一下代码
#define BUF_SIZE 256
TCHAR szName[]=TEXT("Global\\YourFileMappingObject"); //指向同一块共享内存的名字 int SetFileName(LPCTSTR str)
{
HANDLE hMapFile;
LPCTSTR pBuf; hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
, // maximum object size (high-order DWORD)
BUF_SIZE, // maximum object size (low-order DWORD)
szName); // name of mapping object if (hMapFile == NULL)
{
_tprintf(TEXT("Could not create file mapping object (%d).\n"),
GetLastError());
return ;
}
pBuf = (LPTSTR) MapViewOfFile(hMapFile, // handle to map object
FILE_MAP_ALL_ACCESS, // read/write permission
,
,
BUF_SIZE); if (pBuf == NULL)
{
_tprintf(TEXT("Could not map view of file (%d).\n"),
GetLastError()); CloseHandle(hMapFile); return ;
} memcpy((PVOID)pBuf, str, BUF_SIZE);
return ;
} LPCTSTR GetBuffer()
{
HANDLE hMapFile;
LPCTSTR pBuf; hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
, // maximum object size (high-order DWORD)
BUF_SIZE, // maximum object size (low-order DWORD)
szName); // name of mapping object if (hMapFile == NULL)
{
_tprintf(TEXT("Could not create file mapping object (%d).\n"),
GetLastError());
return NULL;
}
pBuf = (LPTSTR) MapViewOfFile(hMapFile, // handle to map object
FILE_MAP_ALL_ACCESS, // read/write permission
,
,
BUF_SIZE); if (pBuf == NULL)
{
_tprintf(TEXT("Could not map view of file (%d).\n"),
GetLastError()); CloseHandle(hMapFile);
return NULL;
}
return pBuf;
}
最新文章
- Android 强制设置横屏或竖屏 设置全屏
- C# 获取本机指定类型指定网卡的Ip地址
- Linux下MySQL忘记密码
- 转<;%%>;、<;%=%>;、<;%$%>;、<;%@%>;的区别
- Unity3D开发之搭建Mac OS开发环境
- tomcat服务器配置及使用
- 源码编译Chrome
- 论文笔记之:MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching
- js判断上传文件大小
- 一些实用的CSS Media Query代码片段,个人采集
- Spring之SpringMVC的MethodNameResolver(源码)分析
- JS查找和替换字符串列子
- 冒泡排序/选择排序/插入排序(c#)
- 忘记mysql的登陆密码该怎么办?
- CentOS 7 yum install cobbler2.8.3
- css小知识
- cpp11_thread线程
- 关于vs调用数据库存储过程 返回输出参数的一些总结
- Impacket官方使用指南
- 网络通信协议三之TCP/IP模型详解
热门文章
- MWeb 1.5 发布!增加打字机滚动模式、发布到 Evernote、印象笔记、Wordpress.com、Blogger、编辑器内代码块语法高亮
- Windows服务安装与卸载
- 基于海明距离的加权平均值人职匹配模型(Sqlserver2014/16内存表实现)
- mac 10.11 cocopods注意的地方
- maven 构建一个web项目
- 二十六、Java--------反射
- 6.Git内容修改之后的查看和提交
- 理解innodb buffer pool
- jquery mobile tabs
- C++模拟实现JDK中的ArrayList和LinkedList