반응형
1. First Process
2. Second Process
#include#include #include #define BUF_SIZE 256 TCHAR szName[]=TEXT("MyFileMappingObject"); TCHAR szMsg[]=TEXT("Message from first process"); void main() { HANDLE hMapFile; LPCTSTR pBuf; hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, // use paging file NULL, // default security PAGE_READWRITE, // read/write access 0, // max. object size BUF_SIZE, // buffer size szName); // name of mapping object if (hMapFile == NULL || hMapFile == INVALID_HANDLE_VALUE) { printf("Could not create file mapping object (%d).\n", GetLastError()); return; } pBuf = (LPTSTR) MapViewOfFile(hMapFile, // handle to map object FILE_MAP_ALL_ACCESS, // read/write permission 0, 0, BUF_SIZE); if (pBuf == NULL) { printf("Could not map view of file (%d).\n", GetLastError()); return; } CopyMemory((PVOID)pBuf, szMsg, strlen(szMsg)); getch(); UnmapViewOfFile(pBuf); CloseHandle(hMapFile); }
2. Second Process
#include#include #include #include #define BUF_SIZE 256 TCHAR szName[]=TEXT("MyFileMappingObject"); void main() { HANDLE hMapFile; LPCTSTR pBuf; hMapFile = OpenFileMapping( FILE_MAP_ALL_ACCESS, // read/write access FALSE, // do not inherit the name szName); // name of mapping object if (hMapFile == NULL) { printf("Could not open file mapping object (%d).\n", GetLastError()); return; } pBuf = MapViewOfFile(hMapFile, // handle to mapping object FILE_MAP_ALL_ACCESS, // read/write permission 0, 0, BUF_SIZE); if (pBuf == NULL) { printf("Could not map view of file (%d).\n", GetLastError()); return; } MessageBox(NULL, pBuf, TEXT("Process2"), MB_OK); UnmapViewOfFile(pBuf); CloseHandle(hMapFile); }
반응형
'Game Dev > Article' 카테고리의 다른 글
프로그램 내 특정 윈도우 찾기 (0) | 2008.07.22 |
---|---|
EnumWindow (0) | 2008.07.22 |
Kill Process (0) | 2008.07.18 |
Capture Screen (0) | 2008.06.16 |