我使用VC ++ 2012(适用于Windows桌面的Express 2012)开发了一个Win32程序。我在设置项目时选择了“Win32”/“Win32控制台应用程序”。我可以在Win-7上运行它,但在接近WinXP的POSReady 2009上失败了。当我在POSReady 2009下运行时,它显示为标题。 有没有办法在VC ++ 2012上配置项目属性或任何其他方法来征服它?感谢。
答案 0 :(得分:2)
您需要安装VS 2012 Update 1或更高版本或VS 2013 Express,并将平台工具集设置为" v110_xp"或" v120_xp"制作与Windows XP Service Pack 3 / Windows Server 2003 Service Pack 2兼容的应用程序。
" v110" /" v120"之间的关键区别和" v110_xp" /" v120_xp" Platform Toolset是Windows SDK。 " V110" /" V120"使用支持Windows Vista或更高版本的Windows 8.x SDK构建。使用Windows 8.x SDK无法构建与Windows XP兼容的应用程序。因此,要以Windows XP / Windows Server 2003为目标,您必须使用备用平台工具集,该工具集使用Express for Windows Desktop附带的Windows SDK 7.1A。
使用任一Windows SDK,请务必为您要定位的操作系统正确设置_WIN32_WINNT。见Using the Windows Headers。对于Windows XP / Windows Server 2003,将其设置为_WIN32_WINNT = 0x0501
请注意,对于DirectX开发,这会产生一些重要影响,因为Windows 7.1 SDK是在为Windows 8.x SDK完成的DirectX SDK集成之前。有关详细信息,请参阅this博文。