Организация вычислительных процессов в ЭВМ. Лясин Д.Н - 22 стр.

UptoLike

Составители: 

22
LRESULT CALLBACK WndProc(HWND hWnd,UINT messg,WPARAM
wParam,LPARAM lParam)
{ static char str[20];
static char *buf;
static HANDLE hFile,hMapping;
switch(messg)
{ case WM_CREATE: //при создании окна приложения:
//Создаем файл с именем “filemapping”, который будет отображаться на
//адресные пространства процессов
hFile=CreateFile("filemapping",GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ,NULL,CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL );
//если создать файл не удается, то, скорее всего, он уже существует (запре-
// щен раздельный доступ к файлу). Тогда закрываем приложение
if (hFile==INVALID_HANDLE_VALUE)
{
MessageBox(NULL,"Невозможно создать
объект отображения",
"Возможно, сервер уже запущен",MB_OK);
PostQuitMessage(0);
}
//Создаем объект отображения файла в память с именем “Mapping”
hMapping=CreateFileMapping(hFile,NULL,PAGE_READWRITE,
0,20,"Mapping");
//Отображаем объект на виртуальное адресное пространство процесса.
//Адрес начала отображения записываем в указатель buf
buf=(char*)MapViewOfFile(hMapping,FILE_MAP_WRITE,0,0,20);
break;
  LRESULT CALLBACK WndProc(HWND hWnd,UINT messg,WPARAM
wParam,LPARAM lParam)
{ static char str[20];
  static char *buf;
  static HANDLE hFile,hMapping;
  switch(messg)
  { case WM_CREATE: //при создании окна приложения:
//Создаем файл с именем “filemapping”, который будет отображаться на
//адресные пространства процессов
      hFile=CreateFile("filemapping",GENERIC_READ|GENERIC_WRITE,
       FILE_SHARE_READ,NULL,CREATE_ALWAYS,
       FILE_ATTRIBUTE_NORMAL, NULL );
//если создать файл не удается, то, скорее всего, он уже существует (запре-
// щен раздельный доступ к файлу). Тогда закрываем приложение
       if (hFile==INVALID_HANDLE_VALUE)
        {
            MessageBox(NULL,"Невозможно создать объект отображения",
             "Возможно, сервер уже запущен",MB_OK);
            PostQuitMessage(0);
        }
//Создаем объект отображения файла в память с именем “Mapping”
        hMapping=CreateFileMapping(hFile,NULL,PAGE_READWRITE,
        0,20,"Mapping");
//Отображаем объект на виртуальное адресное пространство процесса.
//Адрес начала отображения записываем в указатель buf
        buf=(char*)MapViewOfFile(hMapping,FILE_MAP_WRITE,0,0,20);
      break;




                                     22