Сообщений 14 Оценка 60 [+1/-0] Оценить |
Библиотеки ATL и WTL от Microsoft, основанные на шаблонах, позволяют разрабатывать компактные и гибкие COM-приложения. В отличие от привычной библиотеки основных классов MFC, объем рабочего кода, а следовательно и быстродействие серверов и контейнеров, элементов управления ActiveX, написанных с использованием библиотек шаблонов, может быть уменьшен в несколько десятков раз.
Цена такой компактности и ускорения работы приложений - определенная сложность в изучении библиотек и необходимость написания, порой, значительного объема нетривиального кода. Являясь узкоспециализированными инструментами, ATL и WTL не имеют в своем составе многих полезных классов, к которым привыкли разработчики, использующие MFC.
Так как коллекции данных и объектов являются составной частью механизма автоматизации, который в свою очередь является одной из составляющих технологии COM, разработчики давно испытывают потребность в таком мощном классе, которым является класс CArray из MFC.
Написать эту заметку и предложить свой вариант удовлетворения потребности программистов меня побудил вопрос одного из них в конференции "Программирование" популярного и полезного, на мой взгляд, интернет-ресурса http://rsdn.ru.
Собственно вступление, изложенное выше, заняло больше времени и сил, чем решение самой проблемы. Шаблон класса ATLArray, предлагаемый вашему вниманию, - практически полный аналог класса CArray из библиотеки MFC. Так что не ждите подробного описания его методов и переменных, - читайте хэлп по классу CArray в документации вашей Visual Studio и применяйте полученные знания к объектам, произведенным от класса ATLArray. Все методы, их параметры и возвращаемые значения, а также закрытые и открытые переменные класса полностью идентичны.
Оговорю лишь некоторые отличия.
Вот и все отличия предлагаемого класса ATLArray от его старшего брата CArray.
Все остальное вы можете изучить и понять традиционным для ATL способом - просмотром кода прилагаемого файла Atlarray.h.
Там где вам потребуются переменные типа ATLArray, ссылки или указатели на них или классы производные от ATLArray используйте директиву
#include <atlarray.h> |
Можно включить эту строку в файл StdAfx.h вашего проекта (файл этот автоматически генерируется визардом ATL), тогда описание класса станет доступным для всего проекта.
Скопируйте предлагаемый файл Atlarray.h в папку VC98\ATL\include. Всё.
Не прощаюсь. Писать можно на mi@bay.da.ru
Sergey Yermack (aka Mi)
Сообщений 14 Оценка 60 [+1/-0] Оценить |