Составители:
Рубрика:
20
8. ПРОГРАММНЫЙ ИНТЕРФЕЙС ТЕХНОЛОГИИ COMA
8.1. Принятые сокращения
COMA − Component-Oriented Model of Architecture − компонентно-
ориентированная модель архитектуры программной системы.
NGM или NeuroGM – Neurons Graphics Memory − «Нейронная графическая па-
мять».
8.2. Библиотека компонентов
Библиотекой компонентов называется файл динамической линкуемой библиотеки
Window (DLL), которая содержит экспортируемые функции вида:
function ComponentName(L: lua_State): integer; cdecl;
где: ComponentName − имя функции (желательно, чтобы оно совпадало с названием ком-
понента); L − указатель на контекст LUA (вообще говоря, lua_State=pointer); cdecl − мо-
дель вызова функции, принятая за основную в языке Си (параметры передаются в обрат-
ном порядке). Результатом функции является значение integer − количество возвращенных
в стек LUA значений.
Функция ComponentName используется для создания компонента и
преобразования
типов.
В библиотеке могут быть представлены и некоторые вспомогательные функции, но
для их использования в LUA они должны иметь такой же вид.
8.3. Использование библиотеки компонентов в LUA
Для использования библиотеки компонентов в системе определены следующие
встроенные функции:
openlib(dllname) − открыть указанную в dllname библиотеку, результатом явля-
ется управляющая таблица;
closelib(lib) − закрыть библиотеку, где lib − управляющая таблица;
new(compfunc, …) − создать компонент, где compfunc − функция компонента
(см. 8.2. Библиотека компонентов), … − параметры, передаваемые в конструк-
тор компонента. Функция возвращает
таблицу компонента.
При обращении к любому индексу управляющей таблицы созданной функцией
openlib, происходит поиск одноименной функции в библиотеке. Если функция не найдена
в таблице, то производится попытка загрузить ее из DLL, если такая функция есть в DLL,
то ее адрес записывается в управляющую таблицу и возвращается в качестве результата,
иначе − возвращается nil.
Функции openlib и closelib регистрируются при запуске системы и поэтому всегда
доступны в глобальной (первоначальной, основной) таблице LUA (их реализация нахо-
дится в модуле DataServ.dll). Функция new написана на LUA и содержится в файле
COMA\sdk\LuaScript\SysUtils.lua.
8. ПРОГРАММНЫЙ ИНТЕРФЕЙС ТЕХНОЛОГИИ COMA 8.1. Принятые сокращения COMA − Component-Oriented Model of Architecture − компонентно- ориентированная модель архитектуры программной системы. NGM или NeuroGM – Neurons Graphics Memory − «Нейронная графическая па- мять». 8.2. Библиотека компонентов Библиотекой компонентов называется файл динамической линкуемой библиотеки Window (DLL), которая содержит экспортируемые функции вида: function ComponentName(L: lua_State): integer; cdecl; где: ComponentName − имя функции (желательно, чтобы оно совпадало с названием ком- понента); L − указатель на контекст LUA (вообще говоря, lua_State=pointer); cdecl − мо- дель вызова функции, принятая за основную в языке Си (параметры передаются в обрат- ном порядке). Результатом функции является значение integer − количество возвращенных в стек LUA значений. Функция ComponentName используется для создания компонента и преобразования типов. В библиотеке могут быть представлены и некоторые вспомогательные функции, но для их использования в LUA они должны иметь такой же вид. 8.3. Использование библиотеки компонентов в LUA Для использования библиотеки компонентов в системе определены следующие встроенные функции: openlib(dllname) − открыть указанную в dllname библиотеку, результатом явля- ется управляющая таблица; closelib(lib) − закрыть библиотеку, где lib − управляющая таблица; new(compfunc, …) − создать компонент, где compfunc − функция компонента (см. 8.2. Библиотека компонентов), … − параметры, передаваемые в конструк- тор компонента. Функция возвращает таблицу компонента. При обращении к любому индексу управляющей таблицы созданной функцией openlib, происходит поиск одноименной функции в библиотеке. Если функция не найдена в таблице, то производится попытка загрузить ее из DLL, если такая функция есть в DLL, то ее адрес записывается в управляющую таблицу и возвращается в качестве результата, иначе − возвращается nil. Функции openlib и closelib регистрируются при запуске системы и поэтому всегда доступны в глобальной (первоначальной, основной) таблице LUA (их реализация нахо- дится в модуле DataServ.dll). Функция new написана на LUA и содержится в файле COMA\sdk\LuaScript\SysUtils.lua. 20
Страницы
- « первая
- ‹ предыдущая
- …
- 18
- 19
- 20
- 21
- 22
- …
- следующая ›
- последняя »