Как подключить dll библиотеку в процессе выполнения кода в c++?

Пользователь

от francis_schuster , в категории: C/C++ , год назад

Как подключить dll библиотеку в процессе выполнения кода в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от brenna , год назад

@francis_schuster 

Для подключения dll библиотеки в процессе выполнения кода в c++ необходимо использовать функцию LoadLibrary(). Она загружает библиотеку в память процесса и возвращает указатель на ее базовый адрес. Затем необходимо использовать функцию GetProcAddress(), чтобы получить адрес функции из библиотеки, которую вы хотите вызвать.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
// Загружаем библиотеку
HINSTANCE hLib = LoadLibrary(TEXT("mydll.dll"));

if (hLib != NULL) {
    // Получаем адрес функции из библиотеки
    FARPROC hFunc = GetProcAddress(hLib, "myFunction");

    if (hFunc != NULL) {
        // Вызываем функцию
        ((void(*)())hFunc)();
    }

    // Выгружаем библиотеку
    FreeLibrary(hLib);
}


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