84
правкиИзменения
упс, ошибочка
== Регистрация ==
Приложение должно быть зарегестрировано в системе [[AFW]], делается это функцией [[APP_Register]]. Её параметры:
<subpre> APP_Register( reg_tbl, // указатель на первый элемент таблицы ивентов регистрацииreg_count, // количество элементов в этой таблицеstate_handling_table, // таблица, описывающая все состояния приложенияAPP_STATE_MAX, // количество элементов в этой таблице(void *) AppStart ); // функция старта приложения</subpre>
Регистрируется приложение один раз и удалить регистрацию потом будет невозможно, а эльф обычно должен выгружаться из памяти, поэтому нужно исключить совпадение ивентов для выгружаемого эльфа, для этого используется функция [[ldrRequestEventBase]], которая каждый раз возвращает уникальный свободный код ивента который можно использовать как "свои" ивенты. Даже более, следующие 63 кода тоже свободны и никогда не встретятся. При регистрации система запоминает не ивенты, а адресс таблицы, а т.к. память эльфа может быть освобождена данные могут быть изменениы и это может быть источником глюков, от этого никуда не деться.