1

考虑一下,我有两个 Windows 独立 GUI 应用程序。每当我在第一个 GUI 中按下命令按钮时,其他 GUI 应捕获按钮的状态,并应在其中的文本框中显示 ON 或 OFF。如何使用共享内存来做到这一点。

PS:我使用的是 VC++ 2008。

4

1 回答 1

5

看看:http: //msdn.microsoft.com/en-us/library/windows/desktop/aa366551%28v=vs.85%29.aspx

在过程 1 中:

CreateFileMapping():它将使用最后一个参数中提供的名称创建共享内存块,如果它不存在并返回一个句柄(您可以称它为指针),如果成功。

MapViewOfFile():它在进程地址空间中映射(包括)这个共享块并返回一个句柄(同样你可以说一个指针)。

只有使用 MapViewOfFile() 返回的指针,您才能访问该共享块。

在过程 2 中:

OpenFileMapping(): 如果通过 CreateFileMapping() 成功创建共享内存块,则可以使用相同的名称(用于创建共享内存块的名称)。

UnmapViewOfFile():它将取消映射(您可以从该进程地址空间中删除共享内存块)。当您使用完共享内存(即访问、修改等)后,请调用此函数。

Closehandle():最后要从进程中分离共享内存块,使用参数调用它,句柄由 OpenFileMapping() 或 CreateFileMapping() 返回。

于 2013-03-17T13:53:09.160 回答