#include <iostream>
#include <Windows.h>
#include <string>
int main() {
const wchar_t* mapName = L"Local\\MySharedMemory";
const size_t buffSize = 256; //创建共享内存对象 得到一个内核句柄handle
HANDLE hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE,
NULL,
PAGE_READWRITE,
0,
buffSize,
mapName);
if (hMapFile == NULL)
{
int code = GetLastError();
return 0;
} //将内核对象映射到内存地址
void* pBuf = MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, buffSize);
if (pBuf == NULL) {
CloseHandle(hMapFile);
return 0;
} //向共享内存写入数据
int index = 0;
while (1) {
memset(pBuf, 0, buffSize);
std::string message = "hello world writer process "+std::to_string(index);
memcpy(pBuf, message.c_str(), message.size() + 1);
index++;
Sleep(1000);
} UnmapViewOfFile(pBuf);
CloseHandle(hMapFile);
return 0;
}
#include <iostream>
#include <Windows.h>
#include <string>
int main()
{
const wchar_t* mapName = L"Local\\MySharedMemory";
const size_t buffSize = 256;
//打开一个共享内存的映射对象
HANDLE hMapFile = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, mapName);
if (hMapFile == NULL)
{
return -1;
} void* pBuf = MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, buffSize);
if (pBuf == NULL)
{
CloseHandle(hMapFile);
return -1;
} while (1) {
char message[buffSize]{ 0 };
memcpy(message, pBuf, buffSize - 1);
std::cout << message << std::endl;
Sleep(1000);
} UnmapViewOfFile(pBuf);
CloseHandle(hMapFile);
return 0;
}

windows c++共享内存的更多相关文章

  1. windows 下共享内存使用方法示例

    windows下共享内存使用方法较 linux 而言微微复杂 示例实现的功能 有一个视频文件,一块内存区域 : 程序 A,将该视频写入该内存区域 : 程序 B,从该内存区域读取该视频 : 代码模块实现 ...

  2. 利用windows api共享内存通讯

    主要涉及CreateFile,CreateFileMapping,GetLastError,MapViewOfFile,sprintf,OpenFileMapping,CreateProcess Cr ...

  3. C++ windows下共享内存

    转载:https://blog.csdn.net/tojohnonly/article/details/70246965 共享内存 (也叫内存映射文件) 主要是通过映射机制实现的 , Windows ...

  4. Windows进程间通信--共享内存映射文件(FileMapping)--VS2012下发送和接收

    之前以为两个互不相关的程序a.exe b.exe通信就只能通过网络,人家说可以通过发消息,我还深以为不然,对此,我表示万分惭愧. 之前课本上说的进程间通信,有共享内存.管道等之类的,但没有自己操刀写过 ...

  5. Windows 进程间通信 共享内存

    向内存中写数据 1 // SharedMemorySample_write_main.cpp 2 #include <SDKDDKVer.h> 3 #include <Windows ...

  6. windows的共享内存

    https://blog.csdn.net/stpeace/article/details/39534361

  7. Boost:shared_memory_object --- 共享内存

    什么是共享内存 共享内存是最快速的进程间通信机制.操作系统在几个进程的地址空间上映射一段内存,然后这几个进程可以在不需要调用操作系统函数的情况下在那段内存上进行读/写操作.但是,在进程读写共享内存时, ...

  8. Windows进程通信 -- 共享内存(1)

    共享内存的方式原理就是将一份物理内存映射到不同进程各自的虚拟地址空间上,这样每个进程都可以读取同一份数据,从而实现进程通信.因为是通过内存操作实现通信,因此是一种最高效的数据交换方法. 共享内存在 W ...

  9. Windows共享内存示例

    共享内存主要是通过映射机制实现的. Windows 下进程的地址空间在逻辑上是相互隔离的,但在物理上却是重叠的.所谓的重叠是指同一块内存区域可能被多个进程同时使用.当调用 CreateFileMapp ...

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

    http://blog.csdn.net/stpeace/article/details/39534361 进程间的通信方式有很多种, 上次我们说了最傻瓜的“共享外存/文件”的方法. 那么, 在本文中 ...

随机推荐

  1. 【UI框架】ANtDesignVue中的Content超过一页显示问题

    假设content部分是绿色 当内容超出一页之后,滑下去,后面的都没有底色. 如果footer有内容,content的内容甚至会和footer内容重叠在一起,同时,footer的内容随着下滑,位置就不 ...

  2. Linux 虚拟机重启找不到IP解决方案

    @ 目录 前言 简介 Linux 操作系统查看不到IP地址 问题描述: 第一步 :修改配置 第二步 :查看ip 第三步 :查看网卡 第四步 :重启网络 ‌Linux 网络服务重启失败解决办法 问题描述 ...

  3. 『玩转Streamlit』--上传下载文件

    在Web应用中,文件的上传下载是交互中不可缺少的功能. 因为在业务功能中,一般不会只有文字的交互,资料或图片的获取和分发是很常见的需求. 比如,文件上传可让用户向服务器提交数据,如上传图片分享生活.提 ...

  4. Qt音视频开发45-音视频类结构体参数的设计

    一.前言 视频监控内核组件重构和完善花了一年多时间,整个组件个人认为设计的最好的部分就是各种结构体参数的设计,而且分门别类,有枚举值,也有窗体相关的结构体参数,解码相关的结构体参数,同时将部分常用的结 ...

  5. Qt编写安防视频监控系统62-子模块6预置位

    一.前言 预置位功能,只对带有预置位的球机才起作用,有云台的球机未必有预置位,要仔细查看清楚,不清楚可以询问厂家或者查阅手册,在本模块中,可以获取预置位.添加预置位.调用预置位.删除预置位.调用起始位 ...

  6. NET6使用AutoFac依赖注入(仓储模式)

    第一次使用autofac,然后net6最新长期支持的,就想着在net6的基础上使用autofac,我对依赖注入理解很差,一知半解的搞了好久.好在有了一点点的头绪,记录下省的以后忘记(突然发现自己以前用 ...

  7. [转]E1接口介绍

    E1 通道本来设计用来传输电话的,每个 E1(带宽 2.048M)可以传 30 路电话,后来扩大的应用范围,可以用作传网络,串口等不同的业务:E1 是一个基本的传输单元,其最终还是通过光纤来传输的,如 ...

  8. Selenium Python 问题汇总

    1. 在自动化打开浏览器后会长时间加载,此时使用如下命令解决: driver.set_page_load_timeout(20) # 设置浏览器超时加载时间 driver.set_script_tim ...

  9. redis-cluster 集群增加节点

    分布式存储机制-槽 [1]Redis Cluster 在设计中没有使用一致性哈希(Consistency Hashing),而是使用数据分片(Sharding)引入哈希槽[2]Redis Cluste ...

  10. python的typing模块

    python的typing模块 参考:3个提高 Python 开发效率的小工具.Python3 Typing模块详解 typeing模块在python中提供类型支持,主要功能有: 类型检查,防止运行时 ...