Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / photon_old.doc
Скачиваний:
40
Добавлен:
02.04.2015
Размер:
7.88 Mб
Скачать
    1. Имена функций и имена файлов

PhAB генерирует функцию для каждой функции инициализации, установочной функции модуля, ответной реакции, функции пункта меню и прочего, что Вы задаёте в Вашем приложении. Если Вам не нужна функция, оставьте пустым её имя.

После того как функция сгенерирована, Вы вольны модифицировать её. Есть только одно условие: если Вы изменили имя функции, Вы должны также изменить имя, которое Вы задали в связанной ответной реакции или определении внутренней связи. В противном случае PhAB будет продолжать регенерировать старое имя каждый раз при генерации приложения.

Способ, которым Вы задаёте имя функции в PhAB, определяет имя файла заготовки:

  • function_name Создаёт заготовку файла на С под именем

function_name.с

  • function_name@filename.ext

Создаёт заготовку функции и помещает её в filename.ext. Этот файл будет включать хеадеры и структуру функции, требуемые для компиляции в окружении Photon'а.

 PhAB опознает расширения .cc, .cpp и .С как расширения языка С++.

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

  • function_name.ext Короткая форма для function_name@function_name.ext

  • class::function_name@filename.cc

Генерирует заготовку функции статического члена С++, а не прототип.

  • class::function_name@ Не создаёт заготовку функции или прототип. Вместо этого вызывает функцию статического члена класса С++. Для функции члена класса прототипы не генерируются; Ваше приложение должно иметь необходимые декларации в своём глобальном хеадер-файле.

  • function_name@ Генерирует прототип С –функции, а не заготовку. Это

полезно, если Вы используете библиотеку функций С.

  • ::function_name@ Генерирует прототип для функции С++, а не заготовку.

Это полезно, если Вы используете библиотеку функций С++.

Вы можете использовать в одном и том же приложении PhAB'а и С и С++. См. раздел "Что генерирует PhAB" в главе "Генерирование, компилирование и запуск программного кода на исполнение".

    1. Функция инициализации

PhAB позволяет Вам определить функцию инициализации уровня приложения. PhAB API вызывает эту функцию один раз при запуске приложения, перед тем как будут созданы какие-либо окна или другие виджеты. Для получения более полной информации по установкам этой функции см. раздел "Задание информации по запуску приложения" в главе "Работа с приложениями".

Функция инициализации включает стандартные аргументы argc и argv, так что Ваше приложение может, если необходимо, выполнить синтаксический анализ опций командной строки (см. ниже раздел "Обработка опций командной строки". Вы также можете использовать эту функцию, чтобы открыть какую-либо базу данных виджетов (см. главу "Доступ к модулям PhAB из программного кода") или другие файлы данных, специфические для данного приложения.

Вот простая функция инициализации, генерируемая PhAB:

/* Ваше описание */

/* AppBuilder Photon Code Lib */

/* Version 2.01A */

/* Стандартные хеадеры */

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <string.h>

/* Инструментальные хеадеры */

#include <Ph.h>

#include <Pt.h>

#include <Ap.h>

/* Локальные хеадеры */

#include "abimport.h"

#include "proto.h"

/* Строка опций приложения */

const char ApOptions[] =

AB_OPTIONS ""; /* Добавьте Ваши опции в "" */

int

init( int argc, char *argv[] )

{

/* предотвращает предупреждения (варнинги) об отсутствии ссылок */

argc = argc, argv = argv;

/* Обработка опций командной строки – если требуется */

/* Не забудьте проигнорировать первую обработку Photon’ом */

/* Типичное место для открытия баз данных виджета */

/* Любая другая специфическая для приложения инициализация */

return( Pt_CONTINUE );

}

Соседние файлы в папке Литература