2008. 11. 3. 21:48

공유메모리를 만들자


sprintf(achTemp, "%s%s", achSharedName, "_Map");
 m_hSharedMemory = CreateFileMappingA(
  (HANDLE)0xFFFFFFFF,
  NULL,
  PAGE_READWRITE,
  0,
  sizeof(int) + iDataSize,
  achTemp
  );
 if(m_hSharedMemory == NULL)
 {
  SM_TRACE("Failed to create file mapping \n");
  return FALSE;
 }
 m_iDataSize = iDataSize;
 //////////////////////////////////////////////////////////////////////////
 // 메모리 매핑
 m_piSize = (int*)MapViewOfFile(m_hSharedMemory,
  FILE_MAP_ALL_ACCESS,
  0,
  0,
  sizeof(int));
 if(m_piSize == NULL)
 {
  SM_TRACE("Failed on MapViwewOfFile \n");
  return FALSE;
 }
 m_pbSharedMemory = (BYTE*)MapViewOfFile(m_hSharedMemory,
  FILE_MAP_ALL_ACCESS,
  0,
  0,
  sizeof(int) + m_iDataSize);
 if(m_pbSharedMemory == NULL)
 {
  SM_TRACE("Failed on MapViewOfFile 2 \n");
  return FALSE;
 }
 m_pbSharedMemory += sizeof(int);