logo search
Литература_1 / photon_old

Статическое линкование Ваших индивидуальных виджетов

Для следующей ниже процедуры мы предполагаем, что Вы уже выполнили шаги, которые не являются специфическими для платформы хост-машины. Вам нужно:

После того как Вы сделали всё вышеперечисленное, выполните следующие шаги:

  1. Загрузите и инсталлируйте окружение разработчика Cygwin из www.cygwin.com. Это Unix-подобная система с открытым кодом, предлагающая основанное на gcc окружение разработки под Windows.

  2. Напишите функцию С, действующую как таблица для просмотра индивидуальных виджетов PhAB'а для всех индивидуальных виджетов. Вы должны присвоить ей имя get_custom_wgt(), и она должна проверять передаваемое ей имя класса виджета и возвращать соответствующий указатель на класс виджета. Например:

#include <Pt.h>

extern PtWidgetClassRef_t *MyWidget;

PtWidgetClassRef_t **get_custom_wgt( const char *name ) {

if (!strcmp(name, "MyWidget")) return &MyWidget;

else return NULL;

}

  1. Откомпилируйте Вашу функцию индивидуального виджета и функцию таблицы просмотра, используя Cygwin'овский транслятор gcc:

gcc -c -D__LITTLEENDIAN__ -D__X86__ \

-I /usr/lib/gcc-lib/i686-pc-cygwin/*/include \

-I /usr/include \

-I $QNX_HOST/usr/include -I$QNX_TARGET/usr/include \

MyWidget.c get_custom_wgt.c

  1. Сделайте резервную копию оригинального файла ab.exe, который имеется в поставке PhAB.

  2. Слинкуйте Ваши объектные файлы индивидуальных виджетов, чтобы создать новую версию ab.exe:

ld $QNX_HOST/usr/photon/appbuilder/ab.o MyWidget.o \

get_custom_wgt.o -o ab.exe -lcygwin -lkernel32

  1. Замените имеющийся исполняющийся файл PhAB новым, Вами построенным. Вы должны выйти из PhAB, чтобы это сделать.

cp ab.exe $QNX_HOST/usr/photon/appbuilder/ab.exe

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