C++ 创建内存块 Python读取内存块

通过C++创建内存块,实现Python程序的读取。服务端使用C++生成内存块,客户端则用Python进行读取操作,目前功能已实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经过各种折腾,终于搞定了这个奇葩需求:

首先来看 c++文件创建一个内存块服务端客户端分别如下:

//#include "stdafx.h"
#include <windows.h>
#include <iostream> 
using namespace std;
 
#define BUF_SIZE 4096
 
int main()
{
	// 定义共享数据
	UINT32 szBuffer[] = {0x34ff,0x12ff,0x0345678,0x04,0x00,0,0,0};
 
	// 创建共享文件句柄 
	HANDLE hMapFile = CreateFileMapping(
		INVALID_HANDLE_VALUE,   // 物理文件句柄
		NULL,   // 默认安全级别
		PAGE_READWRITE,   // 可读可写
		0,   // 高位文件大小
		BUF_SIZE,   // 低位文件大小
		"S_ME"   // 共享内存名称
	);
 
	// 映射缓存区视图 , 得到指向共享内存的指针
	LPVOID lpBase = MapViewOfFile(
		hMapFile,            // 共享内存的句柄
		FILE_MAP_ALL_ACCESS, // 可读写许可
		0,
		0,
		BUF_SIZE
	);
 
	// 将数据拷贝到共享内存
	//strcpy((UINT32*)lpBase, szBuffer);
	memcpy((UINT32*)lpBase, szBuffer,sizeof(szBuffer));
	cout <<"服务:"<< (UINT32*)lpBase << endl;
 
	// 线程挂起等其他线程读取数据
	Sleep(2000000);
 
	// 解除文件映射
	UnmapViewOfFile(lpBase);
	// 关闭内存映射
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值