Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab3.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.22 Mб
Скачать

Создание второго плагина

Изначально по ТЗ было необходимо обеспечить COM-взаимодействие с кодом, написанным в среде, отличной от среды COM-сервера. Это внушало иллюзию выбора – будто бы таких сред много и можно разгуляться. Но проблема в том, что, к моему стыду, опыт кодинга на плюсах у меня очень небольшой и систем разработки, заточенных под С++, я знаю действительно очень мало.

В Java с COM вообще всё плохо, ибо идеология слишком платформонезависима, а COM – технология всё-таки майкрософтская, проприетарная. Того COM-взаимодействия, которое я увидел в Java, мне вроде бы как не хватило бы для создания плагинов. Там можно было использовать COM-объекты других серверов автоматизации, но с созданием своих серверов возникли бы проблемы.

Я пробовал создавать плагин на Qt, но там большие траблы с одновременным использованием внешних COM-объектов и созданием сервера для экспорта вовне своих внутренних. То есть, в Qt, при условии, что вы создаёте только один проект, вы легко можете либо быть клиентом, используя внешние COM-классы, либо быть сервером и только предоставлять на экспорт свои классы. А наша библиотека должна одновременно поставлять вовне реализацию IPlugin-а и юзать интерфейсы и объекты сервера. Наверное я бы и нашел решение, может быть как-нибудь задействовав ATL либо разбив одну библиотеку на несколько, но у меня было мало времени.

В конце концов я стал писать в допотопном Borland C++ Builder. Заставлять вас писать на Delphi, пожалуй, было бы слишком по-садистски. Найдите где-нибудь рабочую копию этой программы, будьте добры.

Внимание: я использовал Borland C++ Builder 6.0 Enterprise Suite. Он довольно глючный! Запускать его лучше всегда с правами администратора, ибо в то время, когда он вышел, винда ещё позволяла программам делать многие действия, которые сейчас непозволительны без прав администратора. Сохранять код лучше почаще.

Кроме того, нам потребуется какой-нибудь внешний редактор, ибо билдер часто заменяет некоторые автоматически создаваемые им файлы, а их сгенерированное содержимое нас не устраивает, его придется менять в другом редакторе. Я использовал Notepad++ и очень советую вам – хороший бесплатный редактор.

Второй плагин делает примерно то же, что и третий, только третий выводит график зависимости Y от времени, а второй плагин просто будет проигрывать все действия пользователя после создания сервера. То есть будет видно, как, с какими временными интервалами и в какой последовательности юзер ставил точки. Вот такая вот будет помесь видеопроигрывателя, клиента и третьего плагина.

Запустим Borland C++ builder с правами администратора (если вы на Vista или Windows 7).

Увидите перед собой кучу окошек – в то время, видно, было модно использовать кучу окошек в одном приложении. Откройте Project Manager:

Удалите автоматически созданный проект.

Создайте новый проект.

В выборе типа проекта перейдите на вкладку ActiveX и выберете ActiveX Library.

Добавьте в проект новую форму.

Сохраните всё (Shift+Ctrl+S) или так:

Заведите на жестком диске отдельную папку для этого проекта и последовательно сохраните туда все предложенные файлы. Файл .tlb сохраните как Plugin2.tlb. Форму (по умолчанию Unit1.cpp) сохраните как MainUnit.cpp. Проект (Project1.bpr) сохраните как Plugin2.bpr.

Каркас для проекта готов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]