условно пропуская зависимости dll

Я пишу настольное приложение Win8 для мониторинга состояния Bluetooth (среди прочих функций) с помощью Visual Studio 2012. Я указал Bthprops.lib в свойствах проекта -> дополнительные зависимости. Я собрал DLL с кодом Bluetooth и вызвал ее из проекта C #.

Все хорошо работает на Win8. Однако, когда мое приложение работает на Windows Server 2012, при запуске я не могу загрузить DLL, потому что win server 2012 не поддерживает Bluetooth и не имеет зависимого bthprops.cpl.

Поскольку я хочу, чтобы мое приложение работало на нескольких платформах (и не хочу, чтобы пользователи устанавливали дополнительные компоненты), в ситуациях, когда платформа не имеет требуемого зависимого файла, я хочу, чтобы приложение могло запускаться, пропуская выполнение блютус-код и выполняйте остальные функции.

Это возможно? Как бы я этого достиг?

Спасибо

0

Решение

Я боюсь, что вы должны динамически загружать DLL, используя LoadLibrary (). При этом у вас нет зависимости от запуска. Кроме того, вы можете проверить успешность загрузки. Если это не так, компонент не установлен. Это делает возможным неправильное использование механизма отложенной загрузки.

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

2

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

Других решений пока нет …