РАЗРАБОТКА И РЕАЛИЗАЦИЯ МЕТОДА РАСШИРЕНИЯ ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ
ПРИЛОЖЕНИЯ WIN32
А.А.
Новиков, Р.В. Янковский, А.О. Аносов, студ.;
рук. А.А.Тихомиров, к.т.н., доцент
(СамГТУ, г. Самара)
При проектировании
современных приложений большое внимание уделяется вопросам повторного
использования программного кода и возможности дальнейшего расширения набора
выполняемых функций. Для решения этих проблем разработана концепция
объектно-ориентированного программирования и COM-технологии. Однако
создание COM-объектов для небольших
приложений часто является неэффективным вследствие некоторой сложности данного
подхода.
Для решения указанной
проблемы в процессе разработки программного обеспечения для изучения файловых
систем было предложено все операции по обработке файловых структур и работе с
устройствами вынести в отдельные сервисные модули, представляющие собой
динамически подгружаемые библиотеки DLL. Для реализации этой схемы
был разработан программный интерфейс, описывающий структуры данных, общие
операции чтения и записи, обеспечивающий связь между компонентами программы и
позволяющий в зависимости от выбранного устройства и используемой файловой
системы подключать соответствующие модули. Это позволило независимо создавать
модули на разных языках программирования (например, при разработке применялись
языки Object Pascal и Visual C++) и в дальнейшем расширить набор поддерживаемых устройств и исследуемых
файловых систем. Преимущества данного метода заключаются в достаточно гибкой и
простой архитектуре приложения, а также в том, что нет необходимости в
установке подключаемых модулей и записи какой-либо информации в реестр Windows
(что обязательно в случае использования COM-объектов).
В программе возможна
реализация работы с любыми устройствами и структурами с блочной организацией
хранения данных (жесткий диск, дискеты, память), поддерживающими операции
чтения, записи и определения параметров. Спецификация интерфейса и используемые
структуры данных документированы, что позволяет независимым разработчикам создавать
собственные модули для различных устройств и файловых систем и, таким образом,
расширять функциональные возможности разрабатываемого приложения.