Я пытаюсь получить некоторую информацию от DHCP-сервера с помощью API Windows, но продолжаю получать неопределенные ссылки.
Согласно MSDN DhcpEnumSubnets находится в dhcpsapi.lib, и я проверил, что прототип IS в файле dhcpsapi.h и (путем простого текстового поиска), что он IS в .lib
Как вы можете видеть ниже, я ссылаюсь на библиотеку, но все же получаю ошибки компоновщика.
У кого-нибудь есть идеи для меня?
Вот мой журнал компиляции: я использую Dev-C ++ 4.9.9.2 в Windows XP SP2 с последней версией Windows Platform SDK
"Microsoft® Windows® Software Development Kit (SDK) для Windows Server 2008 и .NET Framework 3.5"
«Этот выпуск Windows SDK поддерживает платформы x86, x64 и IA64 для создания и запуска приложений на Windows XP SP2, Windows Server 2003 R2, Windows Vista и Windows Server 2008».
Компилятор: компилятор по умолчанию
Сборка Makefile: "C: \ Projects \ dhcptest \ Makefile.win"
Выполнение make clean
rm -f main.o dhcptest.exe
g ++. Exe -c main.cpp -o main.o -I "C: /Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I "C: / Dev-Cpp / include / c ++ / 3.4.2 / backward "-I" C: / Dev-Cpp / include / c ++ / 3.4.2 / mingw32 "-I" C: / Dev-Cpp / include / c ++ / 3.4.2 "-I" C : / Dev-Cpp / include "-I" C: / Program Files / Microsoft SDKs / Windows / v6.1 / Включить "
g ++. Exe main.o -o "dhcptest.exe" -L "C: / Dev-Cpp / lib" -L "C: / Program Files / Microsoft SDKs / Windows / v6.1 / Lib" ". ./../ Файлы программ / Microsoft SDKs / Windows / v6.1 / Lib / WS2_32.Lib "" .. / .. / Программные файлы / Microsoft SDKs / Windows / v6.1 / Lib / dhcpsapi.lib"
main.o (.text + 0x128): main.cpp: неопределенная ссылка на 'DhcpGetVersion'
main.o (.text + 0x1d7): main.cpp: неопределенная ссылка на 'DhcpEnumSubnets'
main.o (.text + 0x2b2): main.cpp: неопределенная ссылка на 'DhcpEnumSubnetClients'
collect2: ld вернул 1 статус выхода
make.exe: * [dhcptest.exe] Ошибка 1
Исполнение прекращено
Edit:
Я решил проблему с помощью impdef / implib-dhcpsapi.dll и связался с этой библиотекой. Понятия не имею, что случилось с библиотекой, поставляемой в MS Platform SDK.