[成功]在windows xp上使用visual studio 2012 编译的c++程序


很久很久之前,在windwos consumer preview发布的时候,里面的vs11是不支持将编译的程序在xp中运行的(而且那个坑爹的版本里面没有mfc组件,弄得我以为微软发神经放弃mfc了),后来在放出的vs2012 rc版本中依然不支持windows xp,弄得广大人民群众怨气很大,msdn里有很多抱怨的帖子,后来visual c++团队的博客里面说将要在fall的时候放出一个升级支持vs2012中c++部分在win xp中的支持。然后我也好多天没有关注这个问题,直到今天想要编译一个windows xp下使用的程序。
搜了一下,Visual C++ Team Blog一篇文章里面已经提到了如何编译在xp上使用的c++程序。现我大概总结一下。
首先要明确,vs2012支持将编译的c++和.net4.0(4.5不支持),但是不能低于windows xp sp3(x32)/2003 sp2(其实vs2010也是这样的)。
而且,你在这之前还要安装一个更新包”Visual Studio 2012 Update 1″,不过这个更新目前还没有正式版,是”Final CTP”(CTP4)版本,在这里下载。按照下面介绍的说法,只有”vsupdate_KB2707250.exe”是为Visual Studio 2012提供的,所以只安装这个补丁即可。
但非常令我遗(dan)憾(teng)的是我把一个helloworld 的命令行程序中“Property Pages”->”Configuration Properties”->”General”->”Platform Toolset”改为”Visual Studio 2012 – Windows XP(v110_xp)但是还是不能在xp中运行。不过那个博客有人留言说可以,也有人说还要将”Cnofiguration Properties”->”Linker”->”System”->”SubSystem”改成”Console(/SUBSYSTEM:CONSOLE)才行,不过我尝试的结果是这样设置也无法使程序在xpsp3中运行。
也有人说用win7 sdk的库文件什么的替换现有win8 sdk的就可以(不用装这个update),这个我没试过。
先到这吧,有什么发现在更新。
=================================
五分钟后又试了一下,发现可以^_^。
文件需要包含那几个可再发行组件包里的dll,或者用静态链接(有一些细节没尝试,比如vc11可再发行组件包是否支持此程序在xp运行,或者要特定dll?)。
=====================
update: any program if you choose the “use mfc in static library”, u can use the program in winxp (compile by vs110_xp).

, ,

Leave a Reply

Your email address will not be published. Required fields are marked *