创建命名共享内存

来源:互联网 发布:网络购物合同纠纷举证 编辑:程序博客网 时间:2024/06/06 02:47

Test1.cpp

#include <Windows.h>#include <iostream>using namespace std;#define BUF_SIZE 256TCHAR szName[] = TEXT("Global\\MyFileMappingObject");TCHAR szMsg[]  = TEXT("Message for test file-mapping");int main(){    //-----------------------------------------------------    // Create File Mapping    //-----------------------------------------------------    HANDLE hMapFile;    hMapFile = CreateFileMapping(        INVALID_HANDLE_VALUE,   // use paging file        NULL,                   // default security        PAGE_READWRITE,         // read/write access        0,                      // high order DWORD of max object size        BUF_SIZE,               // low order DWORD of max object size        szName);                // name of mapping object    if (hMapFile == NULL)    {        cout << "CreateFileMapping failed with error:"              << GetLastError() << endl;        return 1;    }    //-----------------------------------------------------    // Map View of File    //-----------------------------------------------------    LPTSTR pBuf = (LPTSTR)MapViewOfFile(        hMapFile,          // handle to map object        FILE_MAP_READ |         FILE_MAP_WRITE,    // read/write permission        0,                 // high order DWORD of the file offset         0,                 // low order DWORD of the file offset         BUF_SIZE);         // number of bytes to map    if (pBuf == NULL)    {        cout << "MapViewOfFile failed with error:"              << GetLastError() << endl;        return 2;    }    //-----------------------------------------------------    // Write File and Read File    //-----------------------------------------------------    memcpy(pBuf, szMsg, sizeof(szMsg));    getchar();    MessageBox(NULL, pBuf, TEXT("File Mapping Test"), MB_OK);    //-----------------------------------------------------    // Unmap View of File and Close File Map Object    //-----------------------------------------------------    UnmapViewOfFile(pBuf);    CloseHandle(hMapFile);    //-----------------------------------------------------    // exit    //-----------------------------------------------------    system("pause");    return 0;}

Test2.cpp

#include <Windows.h>#include <iostream>using namespace std;#define BUF_SIZE 256TCHAR szName[] = TEXT("Global\\MyFileMappingObject");int main(){    //-----------------------------------------------------    // Open File Mapping    //-----------------------------------------------------    HANDLE hMapFile;    hMapFile = OpenFileMapping(        FILE_MAP_READ |        FILE_MAP_WRITE,    // read/write access        FALSE,             // handle not inheritable        szName);           // name of mapping object    if (hMapFile == NULL)    {        cout << "OpenFileMapping failed with error:"              << GetLastError() << endl;        return 1;    }    //-----------------------------------------------------    // Map View of File    //-----------------------------------------------------    LPTSTR pBuf = (LPTSTR)MapViewOfFile(        hMapFile,          // handle to map object        FILE_MAP_READ |        FILE_MAP_WRITE,    // read/write permission        0,                 // high order DWORD of the file offset         0,                 // low order DWORD of the file offset         BUF_SIZE);         // number of bytes to map    if (pBuf == NULL)    {        cout << "MapViewOfFile failed with error:"             << GetLastError() << endl;        return 2;    }    //-----------------------------------------------------    // Write File and Read File    //-----------------------------------------------------    *pBuf = TEXT('H');    MessageBox(NULL, pBuf, TEXT("Test File Mapping"), MB_OK);    //-----------------------------------------------------    // Unmap View of File and Close File Map Object    //-----------------------------------------------------    UnmapViewOfFile(pBuf);    CloseHandle(hMapFile);    //-----------------------------------------------------    // exit    //-----------------------------------------------------    system("pause");    return 0;}
0 0
原创粉丝点击