Я согласен с другими, кто уже ответил вам (Ганс Пассант и шош). Я хочу добавить только две вещи:
1) Один из распространенных сценариев, когда вам нужно использовать LoadLibrary
и GetProcAddress
, заключается в следующем: вы хотите использовать какой-то новый API, существующий только в новых версиях Windows, но этот API не критичен для вашего приложения. Таким образом, вы проверяете LoadLibrary
и GetProcAddress
, существует ли нужная вам функция, и используете ее в этом случае. То, что делает ваша программа, если функции не существуют, зависит от вашей реализации.
2) Есть один важный вариант, который вы не включили в свой вопрос: отложенная загрузка DLL . В этом случае операционная система загрузит DLL при вызове одной из своих функций, а не при запуске приложения. Это позволяет использовать библиотеки импорта (.lib
файлы) в некоторых сценариях, в которых явное связывание должно использоваться с первого взгляда. Кроме того, это улучшает время запуска приложений и широко используется самой Windows. Так что путь тоже рекомендуется.