Конгер Д.
Физика для разработчиков компьютерных игр
стр. 489

Кроме функции WinMain (), в каждой программе для Windows должна присутствовать процедура обработки сообщений. Это специальная функция, принимающая сообщения, которые обрабатываются в цикле обработки сообщений функции WinMain ().

Написание функции WinMain()

Как уже говорилось выше, во всех программах для Windows должна присутствовать функция WinMain (). В файл, в котором находится эта функция, должен быть включен стандартный заголовочный файл Windows. h. Это дает программе доступ к типам, функциям и другим элементам, которые ей нужны для превращения в программу для Windows.

У функции WinMain () есть набор параметров, заданных операционной системой Windows. В листинге С.1 показана пустая функция WinMain () со списком параметров.

Первые два параметра функции WinMain () представляют собой дескрипторы. Дескриптор - это нечто вроде идентификатора. Первый из двух дескрипторов обозначает текущий экземпляр программы. Второй может обозначать предыдущий экземпляр. Эти дескрипторы можно использовать, чтобы предотвратить запуск нескольких копий игры сразу. Обычно это весьма полезная возможность — для большинства игр не имеет смысла запускать несколько их экземпляров сразу.

Второй параметр функции WinMain () всегда равен NULL для приложений Win32. Чтобы определить, запущены ли другие копии вашей игры, воспользуйтесь объектом Windows под названием мьютекс (mutex, сокращение от mutual exception — взаимное исключение). Чтобы создать этот объект, вызовите функцию CreateMutex () - это одна из функций API Win32. Создавая мьютекс, задайте ему уникальное имя. Оно не должно использоваться никакой другой программой. После выполнения функции CreateMutex () вызовите функцию GetLastError () — это еще одна функция API Win32. Если функция GetLastError () возвращает значение ERROR_ALREADY_EXISTS, значит, уже запущена другая копия вашей программы. В этом случае вызовите функцию MessageBox (), чтобы вывести сообщение об ошибке и завершите выполнение программы.



Новости
Вышел новый тизер Project Melies от разработчиков Layers of Fear
Bloober Team и Gun Media представили новый тизер хоррора Project Melies, посвящённого немому кино.
В популярной игре спрятали кошелек с деньгами
Как написал Криси в своем блоге на Hackernoon, пароль от кошелька был разделен на две части и спрятан на две разные планеты виртуальной вселенной No Man’s Sky.