Windows API を使用して DHCP サーバーから情報を取得しようとしていますが、未定義の参照が引き続き取得されます。
MSDN によると、DhcpEnumSubnets は dhcpsapi.lib にあり、プロトタイプがdhcpsapi.hファイルにあり、(単純なテキスト検索によって) .lib にあることを確認しました。
以下に示すように、lib に対してリンクしていますが、それでもリンカー エラーが発生します。誰かが私に何かアイデアを持っていますか?
これが私のコンパイル ログです。最新の Windows Platform SDK を使用して、Windows XP SP2 で Dev-C++ 4.9.9.2 を使用しています。
「Windows Server 2008 および .NET Framework 3.5 用の Microsoft® Windows® ソフトウェア開発キット (SDK)」
「Windows SDK のこのリリースは、Windows XP SP2、Windows Server 2003 R2 でアプリケーションを構築および実行するための x86、x64、および IA64 プラットフォームをサポートしています。 、Windows Vista、および Windows Server 2008 です。」
Compiler: Default compiler Build 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/Include"
g++.exe main.o -o "dhcptest.exe" -L"C:/Dev-Cpp/lib" -L"C:/Program Files/Microsoft SDKs/Windows/v6.1/Lib" "../. ./Program Files/Microsoft SDKs/Windows/v6.1/Lib/WS2_32.Lib" " ../../Program Files/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
実行終了
編集: dhcpsapi.dllをimpdef/implib-ingし、そのライブラリにリンクすることで問題を解決しました。MS Platform SDK で提供されているライブラリがどうなっているのかわかりません。