4.3 构建Packet.dll库
构建Packet.dll库的源代码在packetNtx\dll\目录下,要求在Microsoft Visual Studio 2005 SP1版本的环境中构建。我们采用Microsoft Visual Studio 2005构建,同时不需要对AirPcap适配器的支持。
在Microsoft Visual Studio 2005环境中打开E:\winpcap\packetNtx\Dll\Project\目录下的Packet.sln工程,选择Release配置构建Packet.dll库,如果为了调试也可以选择Debug配置。
选择Release配置,开始构建,在Microsoft Visual Studio 2005中执行[Build]→[Rebuild Packet]菜单命令,结果如下:
1>———Rebuild All started:Project:Packet,Confguration:Release Win32———
1>Deleting intermediate and output fles for project'Packet',confguration'Release|Win32'
1>Compiling…
1>win_bpf_flter.c
1>Packet32.c
1>e:\winpcap\Common\packet32.h(53):fatal error C1083:Cannot open include fle:'airpcap.h':No such fle or directory
1>NpfImExt.c
1>AdInfo.c
1>e:\winpcap\Common\packet32.h(53):fatal error C1083:Cannot open include fle:'airpcap.h':No such fle or directory
1>Build log was saved at"file://e:\winpcap\packetNtx\Dll\Project\Release\x86\BuildLog.htm"
1>Packet-2 error(s),0 warning(s)
==========Rebuild All:0 succeeded,1 failed,0 skipped==========
从上面的结果中可以看出,编译出错,无法打开airpcap.h文件,此处不需要支持AirPcap适配器,所以在文件packet32.h的第50行添加#undef HAVE_AIRPCAP_API,再重新构建,执行结果如下:
1>———Rebuild All started:Project:Packet,Confguration:Release Win32———
1>Deleting intermediate and output files for project'Packet',configuration
'Release|Win32'
1>Compiling…
1>win_bpf_flter.c
1>Packet32.c
1>Compiling Packet.dll with support for WanPacket(aka Dialup thru NetMon)
1>Compiling Packet.dll with support from IP helper API for API addresses
1>NpfImExt.c
1>AdInfo.c
1>Compiling…1>WanPacket.cpp
1>Compiling resources…
1>Linking…
1>
Creating library e:\winpcap\packetNtx\Dll\Project\Release\x86\Packet.lib
and object e:\winpcap\packetNtx\Dll\Project\Release\x86\Packet.exp
1>Generating code
1>Finished generating code
1>Embedding manifest…
1>Build log was saved at"file://e:\winpcap\packetNtx\Dll\Project\Release\x86\BuildLog.htm"
1>Packet-0 error(s),0 warning(s)
==========Rebuild All:1 succeeded,0 failed,0 skipped==========
构建成功,在E:\winpcap\packetNtx\Dll\Project\Release\x86下生成Packet.dll与Packet.lib文件。