Test1.cpp
#include <Windows.h>
#include <iostream>
using namespace std;
#define BUF_SIZE 256
TCHAR 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 256
TCHAR 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;
}