WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{ try { Application->Initialize(); // Initialize the ORB and BOA CORBA::ORB_var orb = CORBA::ORB_init(__argc, __argv); CORBA::BOA_var boa = orb->BOA_init(__argc, __argv); WelcomeImpl welcome_WelcomeObject("WelcomeObject"); boa->obj_is_ready(&welcome_WelcomeObject); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; } WelcomeServer.cpp #pragma hdrstop #include <corba.h> #include "WelcomeServer.h" #include "CORBAServerUnit.h" //--------------------------------------------------------------------------- #pragma package(smart_init) extern TForm1 *Form1; WelcomeImpl::WelcomeImpl(const char *object_name): _sk_User::_sk_Welcome(object_name) { } Void WelcomeImpl::Hello() { Form1->Memo1->Lines->Add ("Hello, client!"); } Интересной особенностью CORBA-мастеров C++ Builder является их умение синхронизировать изменения в описании объектной модели с генерируемыми исходными текстами. Каждый раз, когда программист модифицирует IDL-файл, среда разработки исправляет заглушки (stubs) и скелеты (skeletons) приложения, а также переделывает объект. Построение CORBA-клиента Действия, необходимые для проектирования клиентского приложения, обращающегося к серверу, также не сложны. Для построения CORBA-клиента нужно запустить мастера CORBA Client командой File | New | Other | Multitier | CORBA Server (рис. 5.9).
Рисунок 9 В появившемся диалоговом окне (рис. 5.10) нужно выбрать тип приложения и ввести имя IDL-файла user . idl, описывающего объект, к которому будет обращаться CORBA-клиент (можно и не указывать этого имени, а просто добавить IDL-файл в проект). Рисунок 10
Далее нужно спроектировать несложный интерфейс пользователя, позволяющий соединяться с CORBA-сервером (рис. 11).
Рисунок 11
#include <vcl.h> #pragma hdrstop #include "CORBAClientUnit.h" #include "user_c.hh" // !!! //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; //--------------------------------------------------------------------------- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm2::Button1Click(TObject *Sender) { User::Welcome_var H = User::Welcome::_bind("WelcomeObject"); H->Hello(); }
В обработчике нажатия на кнопку «Подключение к CORBA -серверу» помещают исходный текст, производящий вызов метода Hello () удаленного объекта WelcomeObject интерфейса Welcome модуля User. Тестирование ИС Для тестирования ИС следует активизировать утилиту Smart Agent из меню Tools (это программа c:\Inprise\vbroker\bin\osagent.exe) (рис . 12).
Рисунок 12
и последовательно (вне среды C ++ Builder) запустить CORBA-сервер и CORBA-клиент
Популярное: Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (225)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |