小编mur*_*mak的帖子

在Windows操作系统上的Python和Win32之间的IPC

我有两个可以通过win32 IPC API(CreateFileMapping()等进行通信的C应用程序)

我必须用Python应用程序替换客户端应用程序.

我在Python端尝试了以下库.

导入win32file,win32api

但是这个库没有CreateFileMapping()函数.

我也尝试了mmap.mmap()函数,但我无法观察到任何通信.

import mmap

sharedMemory = mmap.mmap(0, 512, "Local\\SharedBuffer")

sharedMemory.write("AB")
Run Code Online (Sandbox Code Playgroud)

我还试过"Global\SharedBuffer"和"SharedBuffer"作为共享内存名称的两个方面.

#define SHARED_BUFFER_NAME          ((LPCSTR)L"Local\\SharedBuffer")

HANDLE bufferHandle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 512, SHARED_BUFFER_NAME);

// Create a map for accessing Shared Buffer
sharedBuffer = (char*)MapViewOfFile(bufferHandle, FILE_MAP_ALL_ACCESS, 0, 0, SHARED_BUFFER_SIZE);

memset(sharedBuffer, 0, SHARED_BUFFER_SIZE);

while (sharedBuffer[0] == 0);

while (1);
Run Code Online (Sandbox Code Playgroud)

win32 API对我来说不是强制性的.我只需要Windows机器上C和python应用程序之间的简单共享缓冲区.

谢谢

c++ python winapi

2
推荐指数
1
解决办法
3698
查看次数

标签 统计

c++ ×1

python ×1

winapi ×1