Създаване на DLL в Visual Basic

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

Така че нека започнем да създаваме библиотеката. Отворете стандартния проект: Файл-> Нов проект-> Стандартен EXE. Функциите, създадени в DLL проекта, ще бъдат тествани в този проект. След това добавете нов проект - ActiveX DLL: Файл-> Добавяне на проект-> ActiveX DLL. В най-простия случай ActiveX DLL проектът се състои от един клас модул. По същество класният модул е ​​обект, който включва свойства, методи и събития. Сега нека измислим име за DLL проекта. В прозореца на Project Explorer изберете Project2. В прозореца за свойства въведете името TestDLL. Нека свържем тази библиотека с първия проект. Отидете до първия проект, като щракнете двукратно върху Project1 в прозореца Project Explorer. Отворете прозореца Object Browser. След това щракнете с десния бутон върху него и изберете Референции от менюто, което се появява:

basic

Появява се прозорецът References, в който са изброени всички регистрирани ActiveX библиотеки. Проектът TestDLL също ще бъде там. Отметнете го, за да го включите в първия проект и щракнете върху OK:

visual

Нека напишем първата функция. Нека това е сумата от две цели числа. В прозореца на кода на модула на класа въведете:

Така че първата функция е готова. Отидете до прозореца на кода на първия проект и напишете

При стартиране програмата ще покаже 15. Обърнете внимание на първия ред, където променливата Class е свързана с класа на библиотеката Class1. Това се нарича ранно обвързване. По същия начин може да се използва късно свързване:

В този случай късното обвързване е неподходящо. Но има случаи, когато късното обвързване е задължително. Сега нека създадем малко по-сложен метод. Този метод ще рисува посочения прозорец с градиентна запълване от зелено на синьо. Въведете следния код в модула на класа:

За да използвате този метод, въведете в първия прозорец на кода на формуляр за проект:

Сега нека създадем свойство за класа:

Както можете да видите по-горе, за създаване на свойство се използват две процедури: Property Get и Property Let. Първата процедура се извиква, когато външната програма изисква стойност на свойството, а втората процедура се извиква, когато външната програма променя стойността на свойството. Разбира се, в този случай всичко това може да бъде заменено с един ред:

Но използването на отделни процедури е удобно, когато при заявяване/присвояване на нова стойност на свойство трябва да извършите някакво действие. Например, нека модифицираме горния текст, както следва:

Сега въведете в кода на формуляра на първия проект:

Когато програмата стартира, ще се появи прозорец със съобщение за промяна на свойството.

Нека направим свойството по-сложно въз основа на горното градиентно запълване. Когато е поискана стойност на свойството, цветовете на границата на запълването ще бъдат върнати, а когато е зададена стойност за свойството, формата ще се запълни с градиентна запълване:

За да използвате това свойство, въведете в прозореца на кода на формуляра:

Сега да разгледаме събитията. Като пример, нека направим събитие, което проследява движението на формуляр по екрана:

Сега поставете два етикета във формуляра и въведете следния код:

Освен класовете, DLL могат да включват и формуляри, които могат да се използват като диалогови прозорци. Например, нека създадем диалогов прозорец за избор на цвят. За да направите това, добавете формуляр към DLL проекта. Поставете две кутии за карти и един бутон върху формуляра. В прозореца със свойства задайте свойството на формуляра BorderStyle = Фиксиран диалогов прозорец и Caption = Избор на цвят. В резултат на това формулярът трябва да изглежда по следния начин:

създаване

Назовете прозореца отляво Picture1, прозореца отдясно - Picture2. В прозореца на кода на този формуляр въведете:

По този начин функцията GetColor ще извика диалоговия прозорец за избор на цвят и след това ще върне избрания цвят. Като пример за използване на тази функция, в прозореца на кода на първия формуляр за проект въведете: