破解C++ Redistributable Package版本之谜

Posted by zhang on

     我们平常玩的游戏、用的免CD破解补丁等程序常常都需要C++ Redistributable Package的支持。但是C++ Redistributable Package有众多版本,常常使新玩家觉得无从下手。本文的目的在于帮助大部分初级玩家解决区分c++的版本问题,让他们很快的找到自己需要的c++版本。


    首先,我们来看看C++ Redistributable Package究竟有多少种版本。以下分条列举。
Microsoft Visual c++ 2005 Redistributable Package(x86)
Microsoft Visual c++ 2005 Redistributable Package(x64)
Microsoft Visual c++ 2005 SP1 Redistributable Package(x86)
Microsoft Visual c++ 2005 SP1 Redistributable Package(x64)
Microsoft Visual c++ 2008 Redistributable Package(x86)
Microsoft Visual c++ 2008 Redistributable Package(x64)
Microsoft Visual c++ 2008 SP1 Redistributable Package(x86)
Microsoft Visual c++ 2008 SP1 Redistributable Package(x64)
Microsoft Visual c++ 2010 Redistributable Package(x86)
Microsoft Visual c++ 2010 Redistributable Package(x64)

Microsoft Visual c++ 2010 SP1 Redistributable Package(x86)
Microsoft Visual c++ 2010 SP1 Redistributable Package(x64)

Microsoft Visual c++ 2012 Redistributable Package(x86)

Microsoft Visual c++ 2012 Redistributable Package(x64)

Microsoft Visual c++ Redistributable Package(IA64)


    如此多的版本难免让人看得眼花缭乱。下面,我就通过对大家常见的问题进行解答的方式来破解C++ Redistributable Package(以下简称c++)版本之谜。


    问题1:装c++ 2010可以替代c++ 2005和c++ 2008吗?对于一般的软件,版本交高的程序可以替代并兼容版本较低的程序。然而c++则是一个特例。由于不同的版本中包含了不同的库文件,因此c++ 2010不能替代c++ 2005和c++ 2008!


    问题2:c++ 2005、c++ 2008、c++ 2010、c++ 2012都装在一台电脑上能兼容吗?这个问题的答案是明确的??它们可以互相兼容,不会发生冲突,因此建议大家把它们都安上。


    问题3:x86、x64是什么意思?其实很多软件上都有这些数字的分别。其中x86代表32位系统,x64代表64位系统。由于64位的系统可以兼容32位的程序,因此x86版本的文件可以装在32位和64位系统上,而x64版本的文件只能装在64位的Windows操作系统上。


    问题4:我的系统是64位的操作系统,因此我就只要装x64的文件?错!虽然从理论上来说应该装x64版本,但我们必须要考虑实际情况。截止目前以及可以预见的未来几年,我们所使用的游戏、破解补丁、从网上下载的小程序,它们都是在32位的环境下开发的。也就是说,开发者或游戏公司在开发这些程序的时候都是调用了32位的库文件。因此,如果我们想在我们自己的电脑上运行这些程序的时候,不管是32位系统还是64位系统,都务必至少要安装x86(32位)的文件。经常有人装了c++后还运行不了某些程序,就是因为他的64位系统只装了64位的文件。这一点特别有迷惑性,希望初级玩家们特别重视。当然,对于那些使用了maya、3ds max等工业软件的用户,x86、x64在64位系统上都是要安装的。


    问题5:c++ 2005和c++ 2005 SP1它们之间的关系是怎样的?其实它们本质上都是服务于c++ 2005开发的程序,它们之间只是版本号不同,可以把c++ 2005 SP1看成是c++ 2005的更新版。因此如果你的电脑之前装有c++ 2005,再安装c++ 2005 SP1时会覆盖c++ 2005。不过不用担心,有了c++ 2005 SP1后,需要c++ 2005和需要c++ 2005 SP1的程序都能运行。因此除非特殊需要,建议大家安装c++ 2005 SP1即可,不用再装c++ 2005了。c++ 2008与c++ 2008 SP1的关系与c++ 2005类似,不在赘述。


    问题6:一个程序只要05、08、10中的某一个即可?不一定。一个跨代开发的程序完全可能既需要c++ 2005,又需要c++ 2008。因此还是那句话,鉴于文件都不是很大,建议把05、08、10、12都装上。


    问题7:网上说某个程序需要c++ 2008,可是我装了还是不能用呀?c++不仅有大版本之分(如2005、2008、2010、2012),还有版本号之分。也就是说,同样都是一个c++ 2008,由于它们的版本号不同,它们之间包含的文件也有微小的差别。如果你的程序恰好需要这个有微小差别的文件,那么你的程序就无法启动。在这一点上,微软的中文网站给广大的中文用户制造了一个不小的陷阱。比如在微软中国上提供的最新版本的c++ 2008 SP1的版本号是9.0.30729.01,而实际上已经有了版本号为9.0.30729.6163的文件。差别还是不小,因此造成了有很多人说我从微软网站上下载都不行。请大家记住,微软网站(尤其是微软的中文网站)上不一定提供的是最新版本。


    问题8:为什么c++ 2005装不了,总是提示“Command line option syntax error. Type Command /? for Help.”?这个问题很普遍,其实还是微软自己的BUG造成的。有关这个问题的详细分析和解决办法,请参阅我的博客《Visual c++ 2005 Redistributable Package不能安装的解决办法》。


    问题9:上面列举的最后一个文件中的IA是什么意思?IA翻译成中文是“安腾”,这是一种专门用在服务器上的处理器。由于该处理器包含了特殊的CPU指令集,因此需要专用的文件。来看本文的人99.999%用不到这个文件,可以忽略。

 

 

    总结:说了这么多,总结一下就是,不管你是32位还是64位操作系统,都至少要安装最新版本的c++ 2005 SP1 Redistributable Package(x86)、c++ 2008 SP1 Redistributable Package(x86)、c++ 2010 SP1 Redistributable Package(x86)、c++ 2012 Redistributable Package(x86)这四个文件,对于需要使用工业软件的用户,则还需额外安装64位的文件。

    我想大家可能会觉得怎么需要安装这么多文件啊?一个一个下载然后再安装太麻烦了,有没有简单点的办法?当然有,这里我要推荐大家使用 DirectX修复工具增强版 。DirectX修复工具本来是修复DirectX的,但是其中的增强版包含了本文中列出的所有需要安装的c++版本(只有DirectX修复工具V3.0及以上版本包含c++ 2012)。下载后只要点一个按钮,就能完成所有的安装操作,简便易行。同时,使用DirectX修复工具还能顺便解决你系统中的很多其他问题(比如0xc000007b问题),因此极力推荐大家使用。

    程序链接:http://pan.baidu.com/s/1qWsKhmW

    相信大家看过本文后,一定对Microsoft Visual c++ Redistributable Package有了一个全新的认识。同时,我也希望本文能对大家有所帮助。

#About Me

张小璋,野蛮生长成世界500强企业供应链金融产品经理的法语毕业生。微信公众号:张小璋碎碎念(ID: SylvainZhang )。
一直在互联网金融公司从事产品经理工作并负责互联网金融产品线,深耕互联网金融和区块链领域。「PMCAFF」、「人人都是产品经理」专栏作家、「PmTalk」签约作家。