发送结构时如何使用 MapViewOfFile

how to use MapViewOfFile when sending a struct

这个问题我已经问过了

但是我还是不明白MapViewOfFile是怎么工作的。我看过msdn的例子,但还是一头雾水。
我只需要有人向我解释如何将整个结构发送到我的共享部分并从那里读取它。
另外 MapViewOfFile 实际上是如何处理从中发送和读取变量的。

但最重要的是,在从进程 1 初始化到进程 2 之后,我如何发送整个结构(您可以在我上面链接的旧线程中看到我在说什么)。

您可以复制该结构,也可以简单地分配并共享它。两个应用程序可以使用以下方式共享结构:

typedef struct {
    int foo;
    int bar;
} MYSTRUCT;

auto hMap = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0,
                sizeof(MYSTRUCT), "MyStructShareName");
MYSTRUCT* pMyStruct = (MYSTRUCT*) MapViewOfFile(hMap, FILE_MAP_READ |
                 FILE_MAP_WRITE, 0, 0, 0);

此时两个应用程序都通过 pMyStruct 指向完全相同的内存。