#cpp #visual_studio #visual_cpp
У меня есть dll библиотека, но как подключить ее в проект для использования ее класса? Например: #include
Ответы
Ответ 1
Описаны варианты связывания и пути реализации: https://msdn.microsoft.com/ru-ru/library/9yd93633.aspx Если кратко, то dll можно подключить двумя способами: Неявно (раннее связывание) Явно (позднее связывание) В первом случае для подключения необходимы: файл заголовка (.h), библиотека импорта (.lib), сама библиотека dll(*.dll). Файл заголовка через #include подключаем туда, где собираемся использовать библиотеку, компоновщику указываем на библиотеку импорта (применительно к vs в свойствах проекта компоновщик->ввод->дополнительные зависимости) и указываем, где искать саму dll (через переменную PATH или в свойствах проекта, например отладка->окружение). Во втором случае с помощью функции LoadLibrary подгружаем dll, получаем указатель на интересующий объект с помощью функции GetProcAddress, используем. typedef UINT (CALLBACK* LPFNDLLFUNC1)(DWORD,UINT); ... HINSTANCE hDLL; // Handle to DLL LPFNDLLFUNC1 lpfnDllFunc1; // Function pointer DWORD dwParam1; UINT uParam2, uReturnVal; hDLL = LoadLibrary("MyDLL"); if (hDLL != NULL) { lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL, "DLLFunc1"); if (!lpfnDllFunc1) { // handle the error FreeLibrary(hDLL); return SOME_ERROR_CODE; } else { // call the function uReturnVal = lpfnDllFunc1(dwParam1, uParam2); } }Ответ 2
Функция LoadLibrary позволяет подключать библиотеки. Или классическое #pragma comment
Комментариев нет:
Отправить комментарий