Windows环境下Python与Win32的IPC

2024-05-29 03:02:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我必须用Python应用程序替换Python应用程序。在

我在Python端尝试了以下库。在

import win32file, win32api

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

我也试过了mmap.mmap()功能,但我无法观察到任何通信。在

import mmap

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

sharedMemory.write("AB")

我也尝试过“Global\SharedBuffer”和“SharedBuffer”作为共享内存名,这两个名称都是两边的。在

^{pr2}$

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

谢谢


Tags: 函数import功能api应用程序localwriteipc
1条回答
网友
1楼 · 发布于 2024-05-29 03:02:28

我测试过这个。。它起作用了。。首先运行C++代码。它将创建一个内存映射。然后运行python代码。它会写在地图上。C++代码将读取地图并打印已写入的内容。在

我知道这段代码是不好的,因为我没有正确地序列化数据(也就是先把大小写入文件,然后再写入数据,等等…),但是我。。这只是一个基本的工作示例。。没别的了。在

Python:

import mmap

shm = mmap.mmap(0, 512, "Local\\Test") #You should "open" the memory map file instead of attempting to create it..
if shm:
    shm.write(bytes("5", 'UTF-8'));
    shm.write(bytes("Hello", 'UTF-8'))
    print("GOOD")

C++:

^{pr2}$

相关问题 更多 >

    热门问题