Структура многомодульной программы

Сложные и объемные программы на MapBasic имеют многомодульную структуру. Это связано с ограничением среды MapBasic на размер модуля (64 Кбайт). Кроме того многомодульные программы легче поддерживать, а также это упрощает совместную разработку приложения.

Такая программа состоит из главного модуля, простых модулей и файла проекта. Физически модуль это текстовый файл с расширением MB а файл проекта имеет расширение MBP. Главный модуль программы отличается от простых модулей только наличием процедуры Main. Структура главного модуля практически совпадает со схемой, представленной на рис. 1. Компиляция модулей выполняется независимо друг от друга. В результате компиляции будут получены объектные модули (файлы с расширением MBO) которые впоследствии, в соответствии с файлом проекта, объединяются в исполняемый файл MBX (рис. 2).

Рассмотрим программу состоящую из четырех модулей.

Код многомодульной программы

Главный модуль Test2.mb

Include "mapbasic.def"

Declare Sub Main

Declare Sub A1

Declare Sub A2

Declare Sub B1

Declare Sub B2

Declare Sub C1

Declare Sub C2

Sub Main

print chr$(12)

call A1

call A2

call B1

call B2

call C1

call C2

end sub

Модуль A:

Include "mapbasic.def"

Declare Sub A1

Declare Sub A2

Sub A1

print "модуль А: процедура А1"

end sub

Sub A2

print "модуль А: процедура А2"

end sub

Модуль B:

Include "mapbasic.def"

Declare Sub B1

Declare Sub B2

Sub B1

print "модуль B: процедура B1"

end sub

Sub B2

print "модуль B: процедура B2"

end sub

Модуль C:

Include "mapbasic.def"

Declare Sub C1

Declare Sub C2

Sub C1

print "модуль C: процедура C1"

end sub

Sub C2

print "модуль C: процедура C2"

end sub

Рис. 2. Общая схема многомодульной программы

После компиляции этих модулей необходимо создать файл проекта Test2.mbp

.

Файл проекта

[Link]

Application=Test2.mbx

Module=Test2.mbo

Module=A.mbo

Module=B.mbo

Module=C.mbo

При этом подразумевается, что все файлы, на которые есть ссылки в проекте находятся в одной с ним папке.

Следующий шаг это сборка проекта и после сборки получаем исполняемый файл

Test2.mbx. Результат работы этой программы приведен на рис. 3.

Рис. 3. Результат выполнения программы

Возможна замена объявлений процедур в главном модуле на подключение соответствующих файлов DEF, которые и будут содержать все необходимые описания.

Include "mapbasic.def"

Include "A.def"

Include "B.def"

Include "C.def"

Declare Sub Main

Sub Main

print chr$(12)

call A1

call A2

call B1

call B2

call C1

call C2

end sub

В приведенном примере, все процедуры используются в главном модуле. Но можно использовать и другую структуру, например, использовать процедуры из модуля B в модуле A и т.д. для этого необходимо включить в модуль соответствующие объявления.

Порядок выполнения работы:

1. Изучить теорию.

2. Рассмореть работу программ на MapBasic из стандартного набора

3. Создать простую одномодульную программу и откомпилировать ее.

4. Создать простую многомодульную программу и откомпилировать ее.

5. Запустить полученные программы в окне MapInfo

6. В отчете отобразить теоретическую часть код программ и модулей

7. Выполненную работу показать преподавателю и сдать отчет на подпись.


МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Тульский государственный университет»

Кафедра геоинженерии и кадастра

  Утверждаю Декан горно-строительного факультета __________________ Р.А. Ковалев “____”_________________ 20___ г.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: