我需要做一个C++作业,但我对Win32 IPC很陌生.我昨天做了一点研究,但我找不到我要找的东西。
基本上,我需要两个程序,第一个创建一个带有分页文件的FileMapping,等待一个缓冲区,显示缓冲区,然后关闭它。
第二个程序连接到通信通道,将缓冲区写入第一个程序,然后关闭。
我找到的最接近的是这个资源。"IPC通信但那里的人用管道而不是使用分页文件的通信渠道。
另外,我发现我可以用分页文件打开一个FileMapping,就像这样。
TCHAR szMapFileName[] = _T("Local\\HelloWorld");
HANDLE hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE,
NULL, // Default security
PAGE_READWRITE, // Read/write access
0, // Max. object size
BUFFER_SIZE, // Buffer size
szMapFileName // Name of mapping object);
如果有人能提供一点帮助,那将是非常有价值的(也许是一个应用程序的骨架?)。我昨天试图做一些研究,但徒劳无功。
谢谢你的帮助
CreateFileMapping()
, OpenFileMapping()
和 MapViewOfFile()
确实是你需要调用的分配共享内存缓冲区的函数。
第一个应用程序必须。
WM_APP+nnn
)到主线程,显示缓冲区的内容。第二个应用必须。
它可以进一步改进,例如,如果事件不在非信号状态,第二个应用程序可能不会写入缓冲区。