Программирование для Windows NT (том 2)



         

Приложение Fmap/Server - часть 2


CHAR lpEventName[] =

  "$MyVerySpecialEventName$";

// Имя объекта-события для завершения процесса

CHAR lpEventTerminationName[] =

  "$MyVerySpecialEventTerminationName$";

// Имя отображния файла на память

CHAR lpFileShareName[] =

  "$MyVerySpecialFileShareName$";

// Идентификатор отображения файла на память

HANDLE hFileMapping;

// Указатель на отображенную область памяти

LPVOID lpFileMap;

int main()

{

  DWORD dwRetCode;

  printf("Mapped and shared file, server process\n"

    "(C) A. Frolov, 1996, Email: frolov@glas.apc.org\n");

 

  // Создаем объект-событие для синхронизации

  // ввода и отображения, выполняемого в разных процессах

  hEventChar = CreateEvent(NULL, FALSE, FALSE, lpEventName);

 

  // Если произошла ошибка, получаем и отображаем ее код,

  // а затем завершаем работу приложения

  if(hEventChar == NULL)

  {

    fprintf(stdout,"CreateEvent: Error %ld\n",

      GetLastError());

    getch();

    return 0;

  }

  // Если объект-событие с указанным именем существует,

  // считаем, что приложение EVENT уже было запущено

  if(GetLastError() == ERROR_ALREADY_EXISTS)

  {

    printf("\nApplication EVENT already started\n"

      "Press any key to exit...");

    getch();

    return 0;

  }

  // Создаем объект-событие для определения момента

  // завершения работы процесса ввода

  hEventTermination = CreateEvent(NULL,

    FALSE, FALSE, lpEventTerminationName);

  if(hEventTermination == NULL)

  {

    fprintf(stdout,"CreateEvent (Termination): Error %ld\n",

      GetLastError());

    getch();

    return 0;

  }

 

  // Создаем объект-отображение

  hFileMapping = CreateFileMapping((HANDLE)0xFFFFFFFF,

    NULL, PAGE_READWRITE, 0, 100, lpFileShareName);

  // Если создать не удалось, выводим код ошибки

  if(hFileMapping == NULL)

  {

    fprintf(stdout,"CreateFileMapping: Error %ld\n",




Содержание  Назад  Вперед