W7兼容性.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
W7兼容性

兼容性出现的常见原因: 1 ,API(Application Programming Interface,应用程序编程接口) 在探讨兼容性出现原因之前我们非常有必要先了解这个名词,“应用程序编程接口”,听起来非常专业的一个名词,其实我们可以理解成这是一个黑盒子,里面放着很多做好了的程序源代码,它们能为我们提供各种功能,因此我们不需要了解太多内部的结构,借助这些程序编程接口便能进行操作。对于操作系统方面,我们可以简单的认为,由于操作系统掌握了太多的软硬件工作和运行的权限,为了协调各种软硬件资源的正常运行,操作系统把自己用一个小黑盒子封装起来了,所有与系统内核和硬件级的程序交互,必须通过windows API来进行。 所以,问题便出来了,大家考虑过一点没有,每次操作系统版本的升级,往往内核都有改变,内核的改变反映到外部我们最能看到的部分不仅仅是操作系统界面的改变, 更实质的变化则是API程序编程接口的变化,删除旧的不适用的API函数增加新的API函数或修改旧的API函数。增加新的API函数往往不会产生问题,但是,删除旧的API函数却有可能造成旧版本软件的不兼容,比如某个软件需要调用旧版本操作系统内核的一个API函数但是这个API函数在新的版本操作系统里面却没有,被删除了,这时,程序往往就会报错了。如果这个API不是很重要,往往我们点击确定之后程序仍旧能够正常使用,但是如果这个API对程序的运行起着至关重要的作用的话,这个程序便不能在新的系统里面运行了。这是最严重的程序兼容问题。解决的办法只能是更新应用软件程序代码。对于我们最终用户来说,解决的途径可以采用XP-mode,但是,这个XP模式的开启是需要严格的条件的,我在下一篇文章里将会同大家专门探讨如何使用XP-Mode来解决兼容问题。 2, UAC的出现 安装时: 在我的以前的文章里面我详细的介绍过,UAC的出现,用户在使用管理员账号登陆系统的时候默认被分配有两个访问令牌,一个是普通用户特权的,一个是具有管理员用户特权的。而我们默认使用的却是仅仅具有普通用户特权的令牌,这个令牌的特权非常少,比如不能向系统关键区域如系统盘根目录(我们最常见的C:)、windows目录、program files目录等还有不能向注册表的HKLM/Software下写入键值。但是,问题出现了,XP时代的程序员们过的是具有管理员特权的日子,他们写的程序大都是直接往这些敏感部位写数据的。于是,在没进行管理员特权提升的情况下,问题出现了,这些程序的数据被虚拟重定向了。然而,专门为Vista系统开发的程序如果没有进行管理员权限的提升的话,会直接报错。这两种都被看做是程序兼容性问题的一种。 运行时: 程序需要向敏感部位写数据,而我们并没有进行管理员权限的提升,程序执行不成功。造成兼容性问题。 3,操作系统版本检查 操作系统版本检查本来是为了确保应用程序所需要的某些操作系统特性确实存在,比如具备程序运行所需要的API函数,有了这些操作系统特性,应用程序才可以正常运行。然而当操作系统版本检查被滥用的时候,很多兼容性问题由此而产生。 用户可能会遇到应用程序在加载的时候,悄无声息地退出而没有任何的信息提示。有的用户可能会看到一个类似“此应用程序必须在Windows XP或者是其后的操作系统上运行”的错误提示对话框。但是,事实上这台计算机的操作系统是Windows 7,当然是在Windows XP之后了。错误或者说是低劣的版本检查,会给用户带来极大的不便。 文章开始时我的那个截图大家还记得吧,我的这个程序却是应用程序开发人员特意设计的版本检查行为,他们希望阻止应用程序在未经过足够测试的新操作系统上运行。但是,通常建议程序员尽量不要阻止应用程序在更新的操作系统上运行。除非最终用户许可协议禁止应用程序在更新的操作系统上使用,否则应用程序不应在操作系统版本号增加的情况下无法运行。如果应用程序无法运行,则必须向用户发送消息,并向日志写入一条消息,然后正常退出。 三大利器: 大家是不是发现我很喜欢三这个数字啊?不清楚为什么,我写的这个文章怎么都具有三的特性。这次针对上面提到的兼容性问题出现的原因我我倒着跟大家探讨解决办法: 1,版本欺骗策略 本策略是为了解决“操作系统版本检查”而实施的策略。 当一个应用程序在“不兼容”的Windows版本上运行的时候,它可能会显示一个错误消息,也可能悄无声息地退出或者是无法正常工作。通常,如果我们解决了版本检查的问题,它就可以正常工作。于是,我们可以进行版本欺骗: 最终用户或者是IT管理员可以简单地使用Windows 7的XP兼容模式,或者是微软所提供的应用程序兼容性工具集(Application Compatibility Toolkit (ACT)),对应用程序进行操作系统版本“欺骗”,

文档评论(0)

zw4044 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档