ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode


Динамическое подключение dll в C#


Поговорим о динамическом подключении библиотек dll (Dynamic Link Library) к программе, разрабатываемой на языке программирования C#. Рассмотрим пример написания консольного клиента для dll-файла.

Динамическое подключение dll происходит во время выполнения программы, в том месте, в котором действительно необходимо использовать функции из библиотеки. Вызов будет осуществляться явно, при выполнении определенного оператора. Статическое же подключении dll происходит сразу при запуске программы, поэтому, подключая библиотеку dll динамически, мы экономим ресурсы компьютера при выполнении нашей программы.

В статье «Как создать dll в Visual Studio» рассказывалось, как создавать dll-файлы, в частности и на языке C# (если вы не знаете как создавать dll, рекомендуем почитать ту статью). Там мы написали библиотеку dll, содержащую два метода: add и sub, которые складывают и вычитают два целых числа. Теперь разработаем консольный клиент для этой dll, продемонстрируем динамическое подключение этой библиотеки.

Сначала создадим в Visual Studio консольный проект на языке C#, и поместим в папку проекта Debug файл «dllcsharp.dll».

Динамическое подключение dll в C# - vscode.ru


Перейдем к разработке программы. Для подключения dll нам понадобился пространство имен System.Reflection. Включим его в проект.

Пишем функцию main(). Загружаем dll-файл. Для этого необходимо создать объект класса Assembly.

Создаем новый объект класса и новый тип, используя название класса из библиотеки dllcsharp.dll.

Для вызова метода из библиотеки используется метод Invoke(Object, Object[]), аргументы которого, это — объект класса, для которого вызывается метод и Object[] — это аргументы, передаваемые в вызываемый метод.

Например, будем складывать числа 2 и 3. Определим их в программе.

Получим метод add из библиотеки dll.

Выполним его и выведем результат в консоль.

То же самое проделаем и с методом sub.

В итоге получится вот такая программа:

Демонстрация работы приложения представлена на рисунке ниже:

Клиент для dll на C# - vscode.ru

Если вы хотите скачать исходник программы, написанной в этой статье, то нажмите на кнопку:

Скачать исходник

 

4.3/5 - (18 голосов)



Поделиться в соц. сетях:

8 комментария(ев) к статье “Динамическое подключение dll в C#

  1. dima13230

    А каким образом можно подключить dll, которая находится в другой папке, отличной от папки с программой? То есть в папке с программой есть другая папка — Lib. Как сделать чтобы библиотека грузилась оттуда?

  2. SkyDen

    А вот в первом уроке вы писали библиотеку на С. Её можно как нибудь к С# подключить?

  3. Unlucky

    столкнулся с такой проблемой, что t = null. Как и следовало ожидать — консоль встаёт.

      1. Unlucky

        Проверял, даже потом решил скопипапстить, как dll, так и консольный код — не помогло.

Добавить комментарий для Andrew Отменить ответ

Ваш адрес email не будет опубликован.