为什么vc运行库要自己下载?

为什么vc运行库要自己下载?

这个问题问得好!

因为我也这样问过自己。

我作为 vc++ 和 linux c++的开发者很愿意讨论这个问题~

我们一个个来说。

你说游戏常用库,可能包括了类似 directX x.0 ,visual c++ Redistributable 20xx, 和 .net framework x.x 还有 windows xlive

我们姑且成这四个库为 “四大天王”吧

你不要急我们一步步分析:

首先,会报错原因很简单,游戏在你双击运行时,游戏程序好像一个手忙脚乱的小装配工,找着不同工具箱(各种库,包括四大天王),利用工具箱里面的工具装配着

游戏的各个功能机器部分(如网络,3d图像之类的功能模块),是游戏能够呈现出来。

突然小装配工发现没有螺丝刀(打比方vcredist.dll没有,这个dll库出现在visual c++ Redistributable 20xx库中)!! 小装配工找啊找啊,在自己知道的地方都招了个遍(如system32 syswow64等一些系统环境变量目录)。

可是小装配工没有人那么智能,他的责任是找不到就放弃(微软策划者设计的)。

最终,游戏报了 “未找到vcredist.dll” 之类的提示。

这时候人就纳闷了,vcredist.dll 是哪个库里面的? 是visual c++ Redistributable 20xx 还是 .net framework x.x里的?

这就害的我们要上网查,到底缺少的dll是 四大天王哪个里面的。

不是 程序员 或者 懂些电脑的人,还真挺麻烦~~

这确实不人性化,特别对于非程序员,这有一说一。

但也可以分析下原因,“未找到xxxxx.dll”是由于 编程时候使用“动态加载dll”函数功能,这个函数加载不到,游戏就说他找不到那个dll,如“未找到xxxxx.dll”。

这个提示是微软提示的,游戏引用了它。

游戏能不能提示人性化点呢? 把xxxxx.dll 属于哪个 “四大天王” 也说一下,不行吗?

答案:还真不太行,不是不行,成本太高。

你缺的这个 dll属于 visual c++ Redistributable 20xx 没问题, 可是属于 哪个版本 2011 2012 2013 2014, 各版本库内容部分不相同的。

这成本就出现了, 游戏程序员不但要会开发游戏, 还有知道 visual c++ Redistributable的内部结构,学习成本很高。

微软也不想让游戏程序员知道这么多,毕竟不是开源公司,不是为了教书育人,是为了money。

游戏公司也不想为了 这个人性化而买单。。就索性报一个 微软提供的一句话“未找到xxxxx.dll”。

这问题无解了吗?

其实 购买正版游戏,游戏光盘或者数字版, 游戏运行会自动检测缺少库,然后给你安装的。不会出现找不到dll。

可能 你这游戏是网上分享的, 那个分享作者没办法编程,成本太高。他只能附上可能需要的库, 可能有的人没附上安装库以及顺序,导致你

找不到dll。

为什么不做成update 或者 系统自带算了?

答:系统本身就很臃肿了,一个dvd都刻不下,像这种可要可不要的库,一般就不自带了,微软会提供下载。

update的话,其根本还是 为了升级, 使得原有功能更强大更稳定,修修补补。 这些库显然不是update概念,而是添加新功能。

如果这些库做成update,用户用不到的也会下一大堆,使系统变慢,用户也不知道哪些有用,哪些没用。

加之windows update很简约,只是必要安全漏洞 或 选择安装,还没有做到人性化, 这也是我们用一些 卫士的原因,他告诉我们这些东西大概干啥用的。

我的水平只够谈到这里了,从我个人总体对这个问题的认识来看。

计算机在国内普及了,但普及的是qq,看电影啊,word办公啊,这些计算机知识,计算机如何工作的,大部分人不知道的。

而计算机系统 不是很人性化, 很多自创词汇,诡异的报错, 对于非计算机相关人士,非常不友好。

这就是普通人和计算机之间的距离,为啥 linux,unix,没很多普通用户用,距离太远。

可能等我们大部分人都丰衣足食,买得起房子,也不羡慕有钱人,因为自己都够花了,为了理想而编程,而设计系统时候。

这些不人性化问题会得到解决,现在大到微软也不能考虑每个人的情况,那样成本太高,他们不愿意买单。

纯手打,就是你这个问题使我非常愿意分享