为多个Windows版本开发驱动程序(xp,win7,vista)

时间:2012-07-16 08:27:45

标签: visual-studio-2010 driver 32bit-64bit wdk

我们正在开发一个DLL,它从WinDDK调用通用的WinUsb函数。此DLL需要在32位和64位版本的Windows中运行,包括xp,vista,win7和win8。

我的问题是,我们如何通过定位所有这些平台来管理Visual Studio 2010解决方案?每个操作系统的WinDDK库都不同,所以如果我从代码中引用一个库:

#### #pragma comment (lib , "C:\\WinDDK\\7600.16385.1\\lib\\wlh\\i386\\winmm.lib" )

或者通过引用project options->includes section中的库,此项目仅对特定目标体系结构正确。 (在这个例子中,Vista 32位,因为我包括'wlh')。

我们是否应该为每个不同的操作系统目标创建一个不同的项目?

2 个答案:

答案 0 :(得分:0)

WDK / DDK版本不会限制您构建的操作系统版本。您可以将目标OS作为构建环境/编译参数传递。

答案 1 :(得分:0)

我认为您应该通过 DDK 构建DLL并在VS项目中使用它。

您可以为VS项目编写预构建事件,以运行批处理文件,该文件将构建DLL并将其放在项目的一些众所周知的位置。

此外,您可能必须为要构建的每个平台创建不同的项目配置(至少对于32位和64位不同)并为DLL运行适当的构建命令。