==== 헤더 선언 ====
BOOL bIsFileOpen;
HANDLE hFileMap; // 파일 매핑을 핸들링..
LPVOID lpMapFile; // 매핑 파일의 포인터..
FAMSHAREDMEMMAP *MapFile;
FAMSHAREDMEMMAP TempMapFile;
==== 바디 선언 ====
공유메모리 처음 생성부..
==========================================================================================
if(hFileMap!=NULL){
return;
}
hFileMap = MapFile = NULL;
// Shared file open & handle is give.
hFileMap = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, "FAMSHAREDMAPSTRUCT");
if(hFileMap == NULL){
hFileMap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, \
0, sizeof(FAMSHAREDMEMMAP), "FAMSHAREDMAPSTRUCT");
if(hFileMap == NULL){
AfxMessageBox("FAMSHAREDMAPSTRUCT MapFile Open Failure!!");
exit(GetLastError());
}
lpMapFile = MapViewOfFile(hFileMap, FILE_MAP_ALL_ACCESS,0,0,0);
}else
lpMapFile = MapViewOfFile(hFileMap, FILE_MAP_ALL_ACCESS,0,0,0);
==========================================================================================
공유메모리 데이터 Write..
==========================================================================================
if(lpMapFile == NULL){
AfxMessageBox("lpMapFile Open Failure 22");
exit(GetLastError());
}
memset(&TempMapFile, 0, sizeof(FAMSHAREDMEMMAP));
memcpy(&TempMapFile,lpMapFile,sizeof(FAMSHAREDMEMMAP));
// Write..
TempMapFile.setx=0x111;
TempMapFile.sety=0xAAA;
memcpy(lpMapFile, &TempMapFile,sizeof(FAMSHAREDMEMMAP));
==========================================================================================
공유메모리 데이터 Read...
==========================================================================================
if(lpMapFile == NULL){
AfxMessageBox("lpMapFile Open Failure 22");
exit(GetLastError());
}
memset(&TempMapFile, 0, sizeof(FAMSHAREDMEMMAP));
memcpy(&TempMapFile,lpMapFile,sizeof(FAMSHAREDMEMMAP));
==========================================================================================
공유메모리 해제...
==========================================================================================
if(hFileMap)
{
UnmapViewOfFile(lpMapFile);
CloseHandle(hFileMap);
hFileMap = NULL;
}
==========================================================================================
'프로그래밍 > VC++ 개발 코딩' 카테고리의 다른 글
동적 라이브러리 만들기 (0) | 2014.01.17 |
---|---|
메모리 정적/동적 할당하여보자 (0) | 2014.01.17 |
현재시간구하기 & 지난시간구하기 (0) | 2014.01.17 |
마우스 커서 모양 바꾸기 (0) | 2014.01.17 |
CppCheck 프로그램 VS6 연동 사용 방법 (0) | 2013.12.17 |