我们正在开发一个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")。
我们是否应该为每个不同的操作系统目标创建一个不同的项目?
WDK/DDK版本不约束您构建的操作系统版本。您可以将目标操作系统作为构建环境/编译参数传递。
我认为您应该通过DDK构建DLL,并在VS项目中使用它。
您可以为VS项目编写预生成事件,以运行一个批处理文件,该文件将生成DLL并将其放在项目的某个已知位置。
此外,您可能需要为每个要构建的平台创建不同的项目配置(至少32位和64位不同),并为DLL运行适当的构建命令。