Windows XP以后的DDK越来越复杂,因为每个DDK都要支持多个操作系统和不同的CPU,其目录结构较Windows 2000 DDK有很大不同。
我以前都是在Visual C++ 6.0的集成环境中使用DriverWorks,这次也不例外。启动Visual C++ 6.0后,先点击菜单的DriverStudio | DDK Build Settings项,设置好DDK的路径。
然后打开C:\Program Files\Compuware\DriverStudio\DriverWorks\Source\vdwlibs.dsw,选择菜单的Build | Batch Build进行编译,32位的库(i386)都编译成功了,kndiswdm.lib也都编译成功,但是vdw_wdm.lib和vdw.lib的IA64和AMD64库都报错,没有成功。错误出现在stl库的_threads.h文件的442行:



再选择DriverStudio | Build with BUILD.EXE,进行编译,没有任何错误,成功了

这真是出乎意料,我本来以为三种方法是一样的,现在看来,Build with BUILD.EXE可能是Compurewre内部使用的比较多的选项,测试比较完善。Build with BUILD.EXE一次只能编译一个配置,所以还需要多次使用Build | Set Active Configuration才能完成所有的编译工作。