0

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/dh​​cpsapi.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 で提供されているライブラリがどうなっているのかわかりません。

4

1 に答える 1

1

-Lコマンドラインに追加のライブラリパスを指定するオプションが表示されますが、リンク-lするライブラリを指定するオプションが表示されません。

私は次のことを試します:

g++.exe main.o -o "dhcptest.exe" -L"C:/Dev-Cpp/lib" -L"C:/Program Files/Microsoft SDKs/Windows/v6.1/Lib" -lWS2_32 -ldhcpsapi

于 2010-12-01T11:29:37.087 に答える