我有(的CreateFileMapping()等)两个C应用程序,可以通过的Win32 API的IPC通信IPC的Python和Win32之间在Windows OS
我有一个Python应用程序以替换客户端应用程序。
我已经尝试了Python端的以下库。
进口win32file,Win32API的
但这库没有的CreateFileMapping()函数。
我也试过mmap.mmap()函数,但我无法观察任何通信。
import mmap
sharedMemory = mmap.mmap(0, 512, "Local\\SharedBuffer")
sharedMemory.write("AB")
我也尝试过“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);
win32 API对我来说不是强制性的。我只需要Windows机器上C和Python应用程序之间的简单共享缓冲区。
谢谢
为什么你铸造'常量为wchar_t *'的'为const char *'? – Brandon 2014-09-30 07:50:27
这个铸件在哪里? MapViewOfFile()函数返回'void *',所以我将它转换为char数组来访问字节。 – muratcakmak 2014-09-30 07:53:52
我还需要帮助。任何回应? – muratcakmak 2014-10-02 13:34:54