DmitriyIT » 16.08.2004 (Пн) 15:03
Попробую как нибудь объяснить разницу...
DLL - Dynamic Link Library - в простом понимании просто контейнер для ряда функций(методов) и переменных, динамически подключаемых к программе, чтобы их можно было оттуда использовать. При этом это не объект! И соответственно термины ООП(объектно-ориентированного программирования) к ней напрямую не применимы. Визуальной формы нет, соответственно все значения и функции, например, TextBox можно записать в DLL, но сам объект TextBox использовать из нее нельзя(например нельзя разместить его на форме).
ActiveX Control (OCX) - это объект с заданными интерфейсами, к которому как раз применимы все признаки ООП: абстракция(создание пользовательских типов данных), инкапсуляция(группирование и защищенность данных по классам), наследование(принимать свойства другого объекта) и полиморфизм(вариативность интерфейсов). Например, ты можешь создать OCX контрол MyTextBox с функциями как у обычного TextBox + твоими собственными. В него можно будет вводить текст, размещать его на форме и т.п. - т.е. он будет по всем возможностям равен встроенным в VB компонентам.
Для конкретной задачи и делается выбор - что создавать: DLL или OCX. Например, если в программе потребовались сложные математические функции, можно написать DLL и вызывать их оттуда, а OCX имеет мало смысла - визуальная форма ведь не нужна... А для красивой кнопочки или графопостроителя нужен OCX.