Створення DLL на Visual Basic

DLL (Dynamic Link Library) - бібліотеки, що динамічно підключаються, являють собою сукупність процедур і функцій, якими можуть користуватися зовнішні програми. Причому одну й ту бібліотеку можна підключити до будь-якої мови програмування тобто. бібліотеки, написані однією мовою програмування, можна використовувати іншими мовами. DLL поділяються на звичайні та ActiveX. Основна відмінність ActiveX DLL від звичайної - це інтерфейс, який пов'язує програму, що викликає, з бібліотекою. Така DLL підключається до програми в процесі розробки, і Ви можете побачити всі її властивості та методи. Процедури зі звичайної DLL викликаються в процесі виконання програми. Прикладом можуть послужити такі бібліотеки як Shell32.dll, User32.dll і т.д., що включають всі відомі API функції. VB може створювати лише бібліотеки ActiveX. З появою VS.NET ActiveX бібліотеки стали називати COM об'єктами.

Тож приступимо до створення бібліотеки. Відкрийте стандартний проект: File->New Project->Standard EXE. У цьому проекті тестуватимуться створені в DLL проекті функції. Потім додайте новий проект - ActiveX DLL: File-Add Project-ActiveX DLL. У найпростішому випадку проект ActiveX DLL складається із одного модуля класу. По суті, модуль класу є об'єктом, що включає властивості, методи і події. Тепер вигадаємо назву DLL проекту. У вікні Project Explorer виберіть Project2. У вікні властивостей введіть назву TestDLL. Підключимо цю бібліотеку до першого проекту. Перейдіть до першого проекту, клацнувши двічі по Project1 у вікні Project Explorer. Відкрийте вікно Object Browser. Потім клацніть по ньому правою кнопкою миші і виберіть у меню пункт References:

visual

З'явиться вікно References, де перелічені всі зареєстрованіActiveX бібліотеки. Там же буде й проект TestDLL. Позначте його галочкою, тим самим включивши його в перший проект і натисніть OK:

basic

Напишемо першу функцію. Нехай вона буде сумою двох цілих чисел. У вікні коду модуля класу введіть:

Отже, перша функція готова. Перейдіть у вікно коду форми першого проекту та введіть

Під час запуску програма покаже 15. Зверніть увагу на перший рядок, де відбувається зв'язування змінної Class із класом бібліотеки Class1. Це називається ранньою прив'язкою. Аналогічно можна було б використати пізню прив'язку:

У разі пізню прив'язку використовувати недоречно. Але є випадки, коли без пізньої прив'язки не обійтися. Тепер створимо метод трохи складніше. Цей метод зафарбовуватиме вказане вікно градієнтною заливкою, що переходить із зеленого в синій колір. Введіть у модулі класу наступний код:

Щоб скористатися цим методом, введіть у вікні коду форми першого проекту:

Тепер створимо властивість для класу:

Як Ви бачите вище, для створення властивості використовуються дві процедури: Property Get та Property Let. Перша процедура викликається, коли зовнішня програма запитує значення якості, а друга - коли зовнішня програма змінює значення характеристики. Звичайно, в даному випадку все це можна було б замінити одним рядком:

Але використання окремих процедур зручно, коли при запиті/присвоєння властивості нового значення потрібно виконати будь-яку дію. Наприклад видозмінимо наведений вище текст так:

Тепер введіть у коді форми першого проекту:

При запуску програми з'явиться віконце з повідомленням про зміну якості.

Зробимо якість складніше на основі вище наведеної градієнтної заливки. Призапиті значення властивості повертатимуться кольори меж заливки, а при заданні значення для властивості форма зафарбовуватиметься градієнтною заливкою:

Щоб скористатися цією властивістю, введіть у вікні коду форми:

Тепер розглянемо події. Як приклад зробимо подію, яка відстежує переміщення форми екраном:

Тепер помістіть на форму два написи (Label) і введіть наступний код:

Крім класів DLL можуть також включати форми, які можуть використовуватися як діалогові вікна. Наприклад створимо діалогове вікно вибору кольорів. Для цього в DLL проект додайте форму. На форму помістіть два PictureBox та одну кнопку. У вікні властивостей вкажіть у форми властивості BorderStyle = Fixed Dialog, а Caption = Вибір кольору. У результаті форма має виглядати приблизно так:

форми

Віконце зліва назвіть Picture1, вікно праворуч - Picture2. У вікно коду цієї форми введіть:

Таким чином функція GetColor викличе діалогове вікно вибору кольору, а потім поверне вибраний колір. Як приклад використання цієї функції у вікні коду форми першого проекту введіть: