70、window11+visual studio2019+共享内存进行数据传输

基本思想:服务端和客户端

写共享内存

#include 
#include  
using namespace std;



HANDLE g_EventRead;		// 读信号灯
HANDLE g_EventWrite;	// 写信号灯
// 定义共享数据



class Writer {
public:
	Writer(const int buf_size, const  wchar_t *share_memory);
	~Writer();
public:
	int send_data(char *szBuffer);
private:
	HANDLE hMapFile;
	LPVOID lpBase;
};

Writer::Writer(const int buf_size, const wchar_t *share_memory) {
	// 创建共享文件句柄 
	hMapFile = CreateFileMapping(
		INVALID_HANDLE_VALUE,   // 物理文件句柄  NVALID_HANDLE_VALUE  则创建一个进程间共享的对象
		NULL,   // 默认安全级别
		PAGE_READWRITE,   // 可读可写
		0,   // 高位文件大小
		buf_size,   // 低位文件大小
		share_memory   // 映射文件名,即共享内存的名称
	);

	if (0 == hMapFile)
	{
		return ;
	}

	// 映射缓存区视图 , 得到指向共享内存的指针
	// 将hFileMapping共享内存衍射到本进程的地址空间中
	lpBase = MapViewOfFile(
		hMapFile,            // 共享内存的句柄
		FILE_MAP_ALL_ACCESS, // 可读写许可
		0,
		0,
		buf_size
	);

	if (0 == lpBase)
	{
		printf("create lpBase fail\n"

你可能感兴趣的:(C/C++基础知识,visual,studio,ide)