Динамическое подключение DLL-библиотеки
Задался задачей сделать подключающиеся DLL, по следующему принципу: в настройках (на отдельной форме) уже запущенной программы указывается путь к DLL файлу, после чего разблокируются некие возможности элементов интерфейса, с помощью которых появляется возможность вызывать заранее известные функции библиотеки.
Например у меня в программе определено описание методов/функций и класса, которые так-же будут присутствовать в DLL:
int GetLibraryVersion();
class SomeLibraryClass
{
public string CurrentLibraryName;
private int SomeLibraryClassCounter;
public SomeLibraryClass(){}
public void DoAction();
public void DoActionWithParams(string param1);
public bool CheckState();
}
SomeLibraryClass BiuldSomeLibraryClassByParams(int param1, string param2);
Я могу сделать DLL, которая будет уже частью программы при запуске, но не имею представления, как сделать так, чтобы уже во время работы программы можно было указать путь к нужной DLL, с заранее известными сигнатурами.
Т.е. я хочу сделать систему плагинов. Для начала пусть хоть один плагин за раз, но чтобы DLL можно было выбирать уже во время работы программы.
Как мне это сделать?
Ответы (1 шт):
Посмотрите в сторону использования LoadLibrary + GetProcAddress. Инструкции и пример кода можно найти здесь: https://docs.microsoft.com/en-us/archive/blogs/jonathanswift/dynamically-calling-an-unmanaged-dll-from-net-c