Загрузить DLL во время выполнения

Я использую API драйвера CUDA в проекте. Когда я выполняю проект на ПК, на котором нет графического процессора NVIDIA, он выдает «nvcuda.dll не найден».

Проблема в том, что эта DLL распространяется только с драйвером графического процессора, а не с API времени выполнения, где вы можете поместить необходимую DLL вместе с исполняемым файлом. Мне нужно загрузить эту DLL во время выполнения, и если она не существует, я буду знать, что CUDA недоступен. Я использую Visual Studio 2012 Professional.

Есть способ сделать это?

1

Решение

Windows предоставляет функция API (LoadLibrary) для загрузки DLL в память во время выполнения. Вы предоставляете LPCTSTR (нулевой завершенный указатель на const TCHAR) содержащий имя / путь к DLL, которую вы хотите загрузить. Если вы укажете относительный путь, Windows будет сканировать PATH и текущий каталог исполняемого файла для файла. Если вы укажете абсолютный путь, Windows будет его использовать.

Если LoadLibrary возвращается NULLWindows не может найти файл.

1

Другие решения

Создайте небольшое приложение «Launcher», которое проверит, соответствует ли система вашим требованиям, и запустит основное приложение или отобразит ошибку в зависимости от результатов проверки.
Чтобы проверить, доступна ли DLL, вы можете использовать LoadLibrary() как ранее предложено.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector