<ctpp/> главная .:. скачать .:. документация .:. faq .:. разработчикам  
o Главная
    Скачать!
    Установка

o Помощь
    Что такое CTPP?
    Как работает CTPP?
    Онлайн-документация
    FAQ

o В действии
    Проекты
    Первые шаги
    Как сделать?..
    Разработчикам

o В разработке
    Тесты производительности
    Расписание
    Разработчики

    Благодарности




Урок 1: Пишем "Hello, World!"

Итак, пришло время познакомиться с C++ API шаблонизатора. Эта статья - первая в цикле "Hello, World" и в ней вы узнаете о том, как пользоваться виртуальной машиной CTPP2.
Нам потребуются следующие классы: OutputCollector или его аналог (FileOutputCollector) для вывода результатов работы, SyscallFactory - фабрика объектов, в которой хранятся функции, загрузчик образа файла VMFileLoader и VM - класс виртуальной машины.

Для упрощения, все необходимые файлы заголовков собраны в один, CTPP2.hpp, его и подключаем.


#include <CTPP2.hpp>


Далее - все просто:


// 1. Создаем коллектор результатов. Вывод направляем в STDOUT
FileOutputCollector oOutputCollector(stdout);

// 2. Создаем фабрику объектов
SyscallFactory oSyscallFactory(100);
// .... и загружаем стандартную библиотеку
STDLibInitializer::InitLibrary(oSyscallFactory);

// 3. Загружаем файл с диска
VMFileLoader oLoader(argv[1]);
// Получаем образ программы 
const VMMemoryCore * pVMMemoryCore = oLoader.GetCore();

// 4. Заполняем данные, которые хотим вывести
CDT oHash;
oHash["hello"] = "Hello, World!";

// 5. Создаем виртуальную машину
VM oVM(oSyscallFactory);

// 6. Инициализируем машину для запуска программы
oVM.Init(oOutputCollector, *pVMMemoryCore);

// 7. Запускаем программу
UINT_32 iIP = 0;
oVM.Run(*pVMMemoryCore, iIP, oHash);


Заходим в каталог examples/extra_fn дистрибутива CTPP2 и компилируем файл:

g++ -I /usr/local/include/ctpp2 -L /usr/local/lib -lctpp2 hello.cpp -o hello

Компилируем шаблон:

ctpp2c hello.tmpl hello.ct2

Проверяем работу:

./hello hello.ct2

Hello, World!


Copyright © 2003 - 2008 CTPP Dev Team.