c - 如何在共享内存中保存结构 C - Windows

标签 c windows winapi shared-memory

我有一个结构:

typedef struct configuration {
    char *server_type;
    char *server_ip;
    unsigned int server_port;
} configuration;

现在,由于我有更多进程,我需要在所有进程之间共享此结构(在主进程初始化之后)。 所以我有这个命名的共享内存:

TCHAR szMsg[]=TEXT("JUST A TEST");
LPCTSTR pBuf;
HANDLE hMapFile;
hMapFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, BUF_SIZE, "Global\\Config");

if (hMapFile == NULL){
    perror("Errore nel creare memory object");
    exit(1);
}

pBuf = (LPTSTR) MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, BUF_SIZE);
if (pBuf == NULL){
    perror("Errore nel mappare la view del file");
    CloseHandle(hMapFile);
    exit(1);
}

CopyMemory((PVOID)pBuf, szMsg, (_tcslen(szMsg) * sizeof(TCHAR)));
UnmapViewOfFile(pBuf);

现在我如何传递 szMsg 所插入的结构指针并从另一个进程从共享内存中读取它?

谢谢

最佳答案

创建数据类型为“configuration* structPoint”的变量,然后传递 structPoint,而不是“TCHAR szMsg”。

关于c - 如何在共享内存中保存结构 C - Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57713798/

相关文章:

C 编程代码不会停止从文本文件读取

c - 嘈杂的 ADC dsPIC

c - 如何正确处理 UnsafeMutablePointer

windows - 在 Windows 上从浏览器运行批处理文件,但不继承浏览器的环境变量

c++ - 写网络使用程序应该用什么API?

c++ - 强制 WM_NCHITTEST 返回 HTCAPTION,带有自定义游标..?

C 编程类型转换和定点

windows - 完全从头开始编写 COM 对象?

c++ - 通过 winapi 与 QT 读取 comport

c++ - GetProcessMemoryInfo 失败,错误 6 句柄无效