Визуальное программирование и MFC

       

DLL-сервер автоматизации


Итак, это будет внутренний сервер Automation. То есть он будет работать в том же адресном пространстве, что и процесс клиента, и, следовательно, выполняться как DLL модуль. Для создания внутреннего сервера средствами Visual C++ следует просто подготовить фрагмент программы для оболочки DLL. Затем для организации с ним взаимодействия добавить описание интерфейса объекта Automation, указав все его параметры и методы.

При помощи мастера MFC AppWizard (dll) следует подготовить проект приложения SvrDll. В случае проекта DLL требуется только один шаг: задать тип создаваемого DLL модуля и указать, необходимо ли подключение механизма автоматизации.

Выберем вариант "Regular DLL using shared MFC DLL" (стандартный DLL модуль с разделяемым DLL модулем - MFC). Стандартный DLL модуль это модуль, с которым может работать люба прикладная программа Windows, а не только созданная на базе MFC. Возможен другой вариант - "Regular DLL with MFC statically linked" (стандартный DLL модуль с постоянной привязкой к MFC), но постоянно привязанные к создаваемому DLL-модулю фрагменты библиотеки MFC значительно увеличат его размер. Выбор первого из названных вариантов (shared MFC DLL) означает, что комплект поставки создаваемого сервера придется дополнять модулем DLL-библиотеки MFC; однако в этом случае размер файла, содержащего сервер, будет сравнительно небольшим. (Остается еще один вариант, который неприемлем для DLL модулей автоматизированного сервера: "MFC-Extension DLL (using shared MFC DLL)" (расширение DLL при использовании разделяемой MFC DLL). Это расширение DLL предназначено для создания DLL модулей с классами, производными от MFC, которые могут применяться в прикладных программах на базе MFC, и только в них.)

Кроме того, следует выбрать еще одну возможность – автоматизацию (включить флажок "Automation"), что приводит к добавлению в файл определенного программного кода, необходимого для формирования автоматизированного сервера.

В результате создания файлов проекта и текста программы имеется обобщенный вариант внутреннего сервера; осталось лишь описать и разработать конкретный объект и его методы и параметры.



Содержание раздела