429.78K
Категория: ПрограммированиеПрограммирование

DLL (Dynamic Link Library)

1.

DLL (англ. Dynamic Link Library — "библиотека динамической компоновки",
"динамически подключаемая библиотека") – динамическая библиотека,
позволяющая многократное использование кода различными программными
приложениями, т.е. это некий контейнер, модуль, в котором содержится код,
который можно использовать в разных проектах.
Создание файла dll:

2.

Переименовать проект и указать расположение:

3.

В этом открывшемся коде файла .dll отсутствует точка
входа в программу, потому что сам этот файл не будет
запускаться как exe'шник. Он будет вызываться каким-то
сторонним exe-файлом, к которому мы подключим этот
dll-файл.
В этом dll-файле можно описать, например, класс,
который может быть использован в различных проектах.
Можно описать в этом классе методы, а в других файлах
создавать объекты этого класса и обращаться через них
к методам этого класса. Или можно создать в этом
классе статические методы и обращаться к ним из
других файлов, не создавая никаких объектов.
Т.е. можно описать здесь любой функционал, который нужен в разных проектах, а потом этот
файл просто подключать к готовым проектам и использовать в них функционал из этой dll.

4.

Для примера опишем статический класс со статическими методами, которые будут решать
простейшие математические операции: умножение и деление. Т.к. класс и методы будут
статическими, значит не нужно будет создавать объекты этого класса, а можно будет просто
из другого проекта обращаться к методам этого класса. Сначала переименуем класс. ПКМ на
имени класса в окне редактора кода, выбрать Переименовать:
В окне редактора кода изменить имя на MyClass, нажать Применить. В окне Обозревателя
решений имя класса тоже изменилось.
Во избежание дальнейшей путаницы нельзя
именовать класс так же как проект. Т.е. в этом
случае нельзя было давать классу имя
MyLibrary.

5.

Добавить в класс два статических метода для умножения и деления:

6.

На этом сам dll-файл готов. Далее необходимо будет его собрать, (возможно, скопировать в
папку с проектом) и потом подключить к готовому проекту.
Чтобы собрать созданный библиотечный файл, нужно в Обозревателе решений ПКМ на
имени решения и выбрать (Пере)собрать решение:
В области Вывода появилось сообщение о том, что в папке с проектом была создана dll:

7.

Если затем вообще необходимо убрать какой-либо элемент из проекта, то можно ПКМ на
этом элементе и выбрать "Исключить из проекта" (сейчас не нажимать!)

8.

Создадим приложение, к которому подключим созданный dll-файл.
Создать.
В Обозревателе решений раскрыть Ссылки:
Сюда и будет подключаться созданная dll.
Нажать F5, чтобы в папке Debug текущего проекта появился exe-файл.

9.

Если эта dll используется во время работы программы, то теперь она всегда должна
находиться рядом с exe-файлом, иначе программа просто не будет работать.
Далее в Обозревателе решений ПКМ на Ссылки и выбрать "Добавить ссылку":
В открывшемся окне нажать на Обзор и найти нашу dll в папке с
проектом WPF. Выбрать ее. Теперь в Обозревателе решений в
разделе Ссылки есть наша dll:

10.

ЛКМ на нашей ссылке в обозревателе решений, внизу появится список свойств ссылки:
Убедиться, что Копировать локально = True.
Это значит, что в папку с приложением автоматически скопируются файлы созданной
библиотеки.

11.

При необходимости (если библиотека сама не скопировалась в папку с проектом) нужно
скопировать файлы библиотеки в папку с проектом.

12.

Теперь можно обратиться через пространство имен MyLibrary через класс myClass и увидеть
доступные методы, в том числе Delenie и Umnozhenie (плюс там еще есть стандартные
методы, которые доступны для всех статических типов в C#):
Дописать и запустить проект:

13.

Чтобы каждый раз не прописывать длинный путь до содержимого библиотеки, следует
подключить ее в разделе using:
…………
using MyLibrary;
Теперь в методе можно просто обращаться к содержимому библиотеки без указания имени
библиотеки:
…………
double resultUmnozh = MyClass.Umnozhenie(6, 7);
double resultDelenie = MyClass.Delenie(12, 7);
…………
English     Русский Правила