Контрольная работа: Распределенная обработка данных

Содержание

 

Задание №1 Реализация интерфейса COM

Задание №1А QueryInterface

Задание №1B Подсчет ссылок


Задание №1 Реализация интерфейса COM

Цель работы:

Разработать код на С++, реализующий простой интерфейс СОМ без динамической компоновки:

-       клиент и компонент взаимодействуют через два интерфейса IX иIY, интерфейсы COM реализованы как чисто абстрактные базовые классы С++;

-       в качестве клиента использовать процедуру main;

-       компонент реализуется классом СА, который наследует как IX так и IY;

-       класс СА реализует функции-члены обоих интерфейсов (множественное наследование);

-       клиент создает экземпляр компонента (для управления существованием компонента клиент применяет оператора new и delete), далее он получает указатели на интерфейсы, поддерживаемые компонентом, использовать эти указатели анологично указателям на классы С++;

-       выводить промежуточные сообщения при использовании интерфейсов IX и IY;

-       удалить компонент;

-       вместо определения интерфейса как класса использовать определение из заголовочного файла OBJBASE.H

#define interface struct

и функции-члены объявлять с помощью

virtual void _stdcall … .

Теоретические сведения:

В СОМ интерфейсы — это все. Для клиента компонент представляет собой набор интерфейсов. Клиент может взаимодействовать с компонентом СОМ только через интерфейс. С точки зрения программиста СОМ, интерфейсы — важная часть любого приложения. Компоненты сами по себе есть просто детали реализации интерфейсов.

Утверждение, что компонент — всего лишь деталь реализации интерфейса, конечно, преувеличение. В конце концов, интерфейс без реализации ничего не сделает. Однако компонент можно удалить и заменить другим; если новый компонент поддерживает те же интерфейсы, что и старый, приложение будет работать по-прежнему. Отдельные компоненты сами по себе не определяют приложения. Приложение определяют интерфейсы между компонентами. Пока интерфейсы неизменны, компоненты могут появляться и исчезать

Теперь рассмотрим код, реализующий простой интерфейс. В приведенном ниже тексте программы компонент CA использует IX и IY для реализации двух интерфейсов.

class IX // Первый интерфейс

{

public:

virtual void Fx1() = 0;

virtual void Fx2() = 0;

};

class IY // Второй интерфейс

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 501
Бесплатно скачать Контрольная работа: Распределенная обработка данных