#windows #api #visual-c #dll
#Windows #API #visual-c #dll
Вопрос:
Я пытаюсь скомпилировать библиотеку DLL в командной строке VC 2010, и одна из функций, которые я использую, находится в urlmon.dll. Как мне связать эту библиотеку DLL с моим исходным файлом? (Это всего лишь одинcpp-файл). Я попытался поместить dll-файл в ту же папку. Нужен ли мне вместо этого lib-файл?
В настоящее время я просто запускаю: cl -LD filename
Я пытался погуглить, но безуспешно. Спасибо тем, кто посмотрел.
Комментарии:
1. Используйте шаблон проекта, чтобы сделать это правильно. Добавьте «urlmon.lib» к входным данным компоновщика дополнительные настройки зависимостей.
2. @Hans: Использование IDE не сделает это проще. Ему просто нужно . вместо этого используется файл lib, поскольку вопрос уже обсуждался.
3. Хм, давайте сохраним эту команду link в секрете.
Ответ №1:
Необходимо установить ссылку на библиотеку импорта urlmon.lib. Невозможно напрямую связать с DLL. (Единственный другой способ получить функции из библиотеки DLL в отсутствие «библиотеки импорта» для этой библиотеки DLL — это использовать такие функции, как LoadLibrary и GetProcAddress, для поиска, загрузки и извлечения конкретной функции, которую вы хотите.)
Ответ №2:
Поместите эту строку в свой исходный файл:
#pragma comment(lib, "urlmon")
Ваш исходный файл уже использует функции urlmon, поэтому имеет смысл перечислить библиотеку рядом.