РАЗРАБОТКА И РЕАЛИЗАЦИЯ МЕТОДА РАСШИРЕНИЯ ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ ПРИЛОЖЕНИЯ WIN32

 

 

А.А. Новиков, Р.В. Янковский, А.О. Аносов, студ.;
 рук. А.А.Тихомиров, к.т.н., доцент

 

 

(СамГТУ, г. Самара)

 

 

 

 

При проектировании современных приложений большое внимание уделяется вопросам повторного использования программного кода и возможности дальнейшего расширения набора выполняемых функций. Для решения этих проблем разработана концепция объектно-ориентированного программирования и COM-технологии. Однако создание  COM-объектов для небольших приложений часто является неэффективным вследствие некоторой сложности данного подхода.

Для решения указанной проблемы в процессе разработки программного обеспечения для изучения файловых систем было предложено все операции по обработке файловых структур и работе с устройствами вынести в отдельные сервисные модули, представляющие собой динамически подгружаемые библиотеки DLL. Для реализации этой схемы был разработан программный интерфейс, описывающий структуры данных, общие операции чтения и записи, обеспечивающий связь между компонентами программы и позволяющий в зависимости от выбранного устройства и используемой файловой системы подключать соответствующие модули. Это позволило независимо создавать модули на разных языках программирования (например, при разработке применялись языки Object Pascal и Visual C++) и в дальнейшем расширить набор поддерживаемых устройств и исследуемых файловых систем. Преимущества данного метода заключаются в достаточно гибкой и простой архитектуре приложения, а также в том, что нет необходимости в установке подключаемых модулей и записи какой-либо информации в реестр Windows (что обязательно в случае использования COM-объектов).

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