【11】问:64位的Win7是不是有好多游戏玩不了啊?
答:很多朋友喜欢用惯性思维认定32位的Win7在游戏兼容性方面要强于64位,我认为这是个值得探讨的话题,为了让和我一样白的小白朋友们从根本上了解,这个问题需要说得详细些,先从DirectX讲起吧。懂得游戏开发的朋友都知道,基于Microsoft DirectX SDK 开发的游戏,程序的最终版一般都是以Release模式编译的,在运行时需要调用形如“d3dx9_*.dll”(星号泛指24~43),Win7自带的DX11包含的DX9动态链接库并不怎么全,甚至XP包含的DX9支持库都比Win7全,这也是为什么许多人觉得XP的游戏性比Win7好的原因。很多朋友从版本号上认为11必定包含全部的9,其实不然,11仅是9的增量包,你必须安装DirectX Redist 9(它们并不冲突)。 还有一种情况,部分游戏的最终版是以Debug模式编译的(例如生化危机4等),它们需要的就是形如“d3dx9d_*.dll”(比上面那个多了个d),这种情况下,为了正常运行游戏,你需要补上该系列的动态运行库或安装DirectX SDK(太大了,不写游戏程序的朋友不建议安装)。基于DX10开发的游戏远远少于前者,这样的游戏需要形如“d3dx10_*.dll”(星号泛指33~43,如果它们是以Release模式编译的话)。由于基于DX11开发的游戏太少了,故暂不讨论。
此外,现在的游戏大多使用VC++搭配DXSDK编写(也有不少是基于OpenGL的),缺少VC运行时库(VC Runtime Lib)的支持也是不行的(很多软件也需要它,例如不少定制版QQ、迅雷等),安装包形如“vcredist_20*_x86.exe”(星号泛指05、08和10),对于64位的系统,在安装x86 vcredist的基础上还需装上相应的x64安装包,个别游戏甚至还需要“. NET Framework”的支持。通常情况,很多游戏的根目录下自带所需库文件,但也有不少游戏不带,于是它会到C:WindowsSystem32中寻找,而你没有把上述的支持库装全,它是找不到的,只能报错。
现在大家应该明白了吧,游戏运行不了不要怪64位系统兼容性不好,巧妇难为无米之炊呀。在保证支持库齐全的情况下,64位的Win7对游戏的兼容性和32位的基本没什么区别(像《命令与征服4》这样的罕见个例暂不讨论)。
【12】问:我安装Win7后出现了100MB的隐藏分区,怎么办啊?
答:不少朋友在安装Win7时使用安装程序自带的分区功能进行分区,出现了100MB的隐藏分区,冷不丁出现这么个玩意儿,似乎看着有些不习惯,它到底是什么?喝口水先,呵呵。为了更好的保护Win7,微软开设了这块小巧精致的“世外桃源”(7048版之前是200MB),里面包含了系统启动所需的引导信息(Bootmgr、Bootsect.bak)、磁盘主引导分区信息、BitLocker分区加密信息等。该分区的格式是非标准且被加密过的NTFS,这块小空间由于没有被分配盘符,所以相对安全许多,在这里强调一下,为该分区强行分配盘符,其操作是不可逆的,已被分配盘符的它无法还原为原先的未分配状态。引申一下来探讨,隐藏分区中的引导文件可不可以删除呢?答案是否定的,即使你以Administrator身份外加“管理员取得所有权限”尝试删除,仍会遭到系统的拒绝。对于该分区的写操作,System身份也没有完全控制权。
在你使用浑身解数干掉该分区后,恭喜你――在开机时获得“BOOTMBR is missing ”的恐怖提示,呵呵!所以,已经包含该隐藏分区且正在踏踏实实使用Win7的朋友,就不要为这区区的100MB纠结了,况且删掉它还有可能导致Win7软激活失败,折腾半天对你一点儿好处都没有。需要强调的是,DOS工具箱中包含的PartitionMagic会误认为你的分区列表存在
错误,问你是否需要修复,如果你修复了……恭喜你,数据化为浮云。实在不想看到它的朋友,在安装Win7前就分好区即可。
【13】关于Win7桌面“刷新”功能的小探讨。
讨论:有个朋友,闲来无事时喜欢狂点右键刷新桌面,且坚决不用F5。我问他你在干嘛?他说:“多刷几次系统快啊!”我问他为什么刷过就快了?他沉默半天后突然冒出一句:“靠,我停不下来啊!”我无语……貌似“刷新”功能让很多朋友患上了轻微的强迫症,这和你每次锁门后总要反复确认N次是同一症状,现在跟我一起来简单分析下“刷新”的工作原理吧。 说到刷新,不得不提到explorer.exe进程。大家都知道,它是构建Windows桌面、任务栏、开始菜单等UI的主要核心,没它的话后者皆为浮云。早在Win9X时代,它是Windows运行的必要条件,如果结束该进程,Win9X会立刻询问你是否关闭计算机,explorer.exe的意外终止会直接导致系统停止响应。而到了2K、XP、Vista或Win7时代,explorer.exe已变成了Windows运行的非必要条件,终止该进程最多没有了桌面而已,对系统的运行不会有丝毫影响,高兴的话,你还可以再次创建它,这也是为什么NT内核系统比9X的要稳定的原因之一。
喜欢写程序的朋友都知道,当你为系统下达了“刷新”命令后,Windows通过SendMessage()函数传递WM_SETTINGCHANGE或WM_USERCHANGED参数,当explorer.exe收到该消息时会重新从注册表读取数据,完成一次“刷新”。可见,刷新功能还是有用的,不然微软也不会把它沿用至今。但有一点需要注意,9X中执行一次刷新,系统会重载桌面全部项并读取虚拟内存中的后备项,在两三秒的“咯吱咯吱”读盘声后,你会感觉桌面快多了!然而到了Win7时代,Superfetch技术已完全取代手动重载UI资源(除非你禁用该服务),“刷新”功能早已失去它原有的意义和使命。
为此还在纠结的景友们,读到这里,是否考虑逐渐改掉这个小习惯呢,除非你觉得桌面一闪一闪的很有趣哦。
【14】问:SSD固态硬盘到底需不需要整理碎片啊?
答:网上对于这个问题的解答众说纷纭,可以说自从诞生SSD开始就一直争论不休。在我回答此问题之前,邀请景友们和我一起复习下SSD的工作原理,然后你来判断该不该进行碎片整理,呵呵,别说我狡猾哦!用过SSD的朋友都知道,它是由SSD控制器和FLASH芯片两部分组成,前者负责读/写数据,后者负责存储数据。由于存储结构是并行的,理论上每一个存储单元到总线的逻辑距离均等,换句话说,有没有碎片对于读写速度都是一样的。这样看来,SSD似乎真的不需碎片整理呢。
但这里有个不大不小的问题,就是以现在的工艺技术,无论MLC还是SLC的寿命都不算很高(相对HDD而言),被反复写入数据的单元会面临报废并牵连整个存储单元,为了避免整个硬盘过早夭折,SSD引入了“均衡磨损算法(Wear Leveing,简称WL算法)”,即控制器强制硬盘内每个单元均被写过一遍后再回到起始位重新来过,这样SSD的寿命就成几何倍数的增加了许多。
呵呵,问题出来了,WL算法的应用导致SSD寻址和读写数据的方式有些像HDD了,这使得每个单元和总线的逻辑距离产生了不一致,碎片的逐渐积累还是导致了SSD运行效率日渐下降。更作呕的问题出来了,目前网上常见的适用于HDD的碎片整理工具,对于整理SSD碎片的技术并不成熟,即便成熟了,也违背了WL算法的初衷。由于它们之间的存储逻辑存在本质区别,你好心好意为你心爱的SSD进行碎片整理,反而导致存储单元的寿命大打折扣。
怎么样,纠结了吧?在这里我没有贬低任何SSD生产商的意思,因为任何一项技术从诞生到成熟都需要一个过程,这可以理解。至于要不要对SSD做碎片整理,看我讲了这么多之后你来回答吧,我闪……呵呵。
【15】Win7的兼容性助手、兼容性向导很废柴啊!我要不要禁用它啊?
答:冒死回答这个问题,呵呵,倒是不至于,但看完我的解答后持反对意见的朋友,欢迎你和我慢慢交流,求同存异,毕竟我不是微软的MVP。早在XPSP1时代,微软已开始重点关注Windows对应用程序的兼容性问题。到了Vista和Win7时代,兼容性助手及向导已作为系统兼容性解决方案的重要组成部件出现在我们的电脑中。可能你会说:“我某某程序用了兼容性助手还是不能解决啊!鸡肋啊!”这样的朋友先稍安勿躁,听我大概解释下“Windows兼容性”的基本概念。由于咱远景不是编程论坛,所以不在这里给景友们讲枯燥的程序概念,你只需知道以下三点即可:
1.从Vista开始,Windows引入了UAC概念,UAC如怨妇般的限定了几乎所有程序运行的权限,这样做的核心目的是有助于降低应用程序或恶意程序对系统造成威胁性的概率。然而,有些应用程序必须以管理员权限运行,否则即会出现兼容性问题。这也是为什么微软赋予我们以“管理员身份运行此程序”的原因之一。
2. C:WindowsWinsxs目录里包含了Windows和应用程序在运行时所需的多版本支持库,某些“高手”朋友或“优化”软件居然打起了它的主意,理由很简单――它太大了。殊不知,你干掉或瘦身这个文件夹,系统的兼容性大大下降甚至崩溃,到时候别说“兼容性助手”,就是“兼容性上帝”也救不了你哦。
3.从Win7开始,WRP技术得到了微软的重点加强,WRP又称为“Windows资源保护技术”,早期编写的应用程序,其运行方式在同年代的Windows中是正确的,但在Win7中是有可能错误的。你可以这样理解,它们在运行时需要读写注册表中的某些键值或读写某些文件,而这些键值或文件在Win7中早已不存在或被替换为其它名称或概念。 当这样的程序无法读到它需要的键值或文件时,就可能面临运行失败并报错,即便勉强运行,对注册表敏感部位的老土写入方式也会对Windows的安全构成威胁。
Win7的做法是利用WRP技术临时创建工作区,并重定向这种老土程序的写入操作,这些操作可能包含尝试替换、修改或删除受Windows保护的注册表键值或文件。所幸的是,Win7的兼容性助手有能力提早发现这个问题,并向你汇报。但是,当兼容性助手发现WRP也救不了这些程序时,只能为你弹出相应的兼容性报告,说白了就是Windows仿佛在说:“有问题我告诉你了,听不听在你啊!系统烂了别怪我啊!”
读完这3点,抱怨兼容性助手是鸡肋的朋友略有了解了吧,改变程序的运行方式来提升兼容性只是兼容性助手的作用之一,它更伟大的使命是为你的系统稳定性保驾护航。 最后再补充两点:
1.关闭它的方法是:开始菜单――“运行”――gpedit.msc――“计算机配置”――“管理模板”――“Windows组件”,右边窗口里找到“应用程序兼容性”―― “关闭程序兼容性助理”,最后重启系统。
2.兼容性助手和兼容性向导的区别是,前者自动后者手动。
【16】安装万能解码包对我的Win7有没有危害啊? 答:Windows Media Player人人都有,但由于解码器版权限制,很多影音格式它是不支持的。为弥补这一缺憾,网上出现了很多由不同组织发布的万能解码包,它们的出现,使功能单薄的WMP几乎通吃全部格式。需要注意的是,慎用某些万能解码包,因为它们的质量参差不齐,你赶上好用的还无妨,赶上有问题的,便会出现如下任意或多个常见症状:
1.在某些游戏的过场动画中突然报错导致程序停止响应或切回桌面。
2.Adobe Audition、Adobe Premiere、Corel VideoStudio、Ulead GIF Animator等影音编辑工具初始化错误。
3.播放后缀名相同而编码方式不同的文件格式时报错,例如明明有的avi、mp3可以正常播放,而有的avi、mp3一点开就导致播放器停止响应或假死。
4.部分视频文件播放时奇“卡”无比。
5.原本可以支持进度条快进快退的某些音视频,现在拖拽不了了。 6.使用个别影音格式转换工具时,选取转换为某种格式时报错。
上述症状的罪魁祸首均为某些封装不良的万能解码包所致。众所周知,为Windows添加新的解码支持,需要向注册表添加海量键值,并向系统敏感部位(如C:WindowsSystem32等路径)写入相应库文件。当系统默认的键值、库文件被错误的替换、覆盖、删除时,出现上述错误就不足为奇了(往往这部分数据不受WRP的兼容性保护,WRP简介可详见本帖【15】部分)。此外,部分格式的支持库尚处于改错、发展的不成熟状态,错误在所难免。由于该部分知识所牵扯的内容复杂而繁琐,限于篇幅,暂不讨论,以后有机会我可另起新篇与大家深入讨论。下面说说解决方案吧。
1.解码包对系统的耦合性越低,出现错误的概率就越小,所以如果还没安装过任何万能解码包的朋友,建议你使用KMPlayer、QQPlayer、QvodPlayer等播放软件,它们自带的多格式解码器足以满足你的日常需要,不喜欢可随时删掉,对系统不会产生任何危害。在这里我声明一下,没有贬低万能解码包的意思,好用的也不少,但你毕竟不是小白鼠,没有精力去逐一验证孰好孰坏,且系统稳定性也非儿戏。
2.已经安装万能解码包且出现上述症状的朋友,单纯的卸载可能无法更正错误,比较有效的办法是尝试安装其它解码包,覆盖掉系统中包含错误的键值或库文件。手动修复错误(如找到并修改键值)的办法并不推荐,往往有些错误包含的键值是海量的。在这里请恕我不便向大家透露任何我认为“好用”或“不好用”的万能解码包,总之还是慎用吧。
【17】为什么Win7占的内存总比XP大啊?
答:这个问题还是比较有探讨性的,无论是32还是64位的Win7,对于内存的管理机制都和XP截然不同。用惯了XP的朋友都会有这样一个思想:“低进程数、高可用内存就是系统流畅的标准。”而Win7内存管理机制所倡导的理念是:“高占用,高效率”。感兴趣的景友们和我从技术层面简单的分析下这个全新的理念吧:
Windows认为内存应分为两大部分:“工作集”和“数据结构”,后者又被划分为“自由页面、已修改页面、备用页面、清零页面、坏损页面”五个部分。大家可以这样理解,“工作集”就是程序(进程)运行时需要占用的那部分内存,“数据结构”就是根据程序的使用情况,Windows为它们划分的临时空间。
举个例子,我此时运行的程序有ie、记事本、word和QQ,当我关闭ie后,ie所在的工作集就被Windows释放并转移到“自由页面”(而不仅仅是释放内存那么简单)。Word里有我没打完的稿子,它所在的工作集就被划分到“已修改页面”。对于我压根儿就没顾上用的记事本程序,Windows便把它扔到“备用页面”。已被我关闭并被转到自由页面的进程工作集,在触发事件后又被Windows丢到了“清零页面”。已失效的工作集数据最终被Windows撵到了“坏损页面”……
听起来好像有些晕,但通过这个例子可以看出,内存管理其实并没我们想象得那么简单。XP的内存管理机制相对Win7而言还是比较落后的,例如:当你长时间不关机并离开电脑后,再回来用时会感到系统可能需要一个短时间的响应过程,原因是你走后XP把你前台运行的程序调入后台甚至虚拟内存中,腾出的资源分配给了杀毒软件的后台扫描、碎片整理的计划任务等,而当你回来时XP才慌慌张张地把你运行一半的程序从虚拟内存中调回来。再比方说,一些较大的程序在你每次开机首次运行时加载很慢,但第二次再点开就快多了……等等,这样的例子数不胜数。
而Win7的Superfetch技术可以很好地改善Windows的内存管理机制,Superfetch的理念是: 1.通过学习和猜测用户的使用习惯,将你最可能用到但还没打开的程序提前载入可用内存,以便需要时飞速打开。
相关推荐: