chrome 等浏览器底层怎么实现的支持 windows 操作系统的不同版本的?

2018-09-10 19:20:17 +08:00
 fayefang

chrome 等浏览器有些版本支持 win7,win8,等,不支持 winXP,但有一些又支持 xp,底层发生了什么?以及所有的桌面应用也同样的有自己支持的操作系统版本,具体怎么设置的或者怎么实现的?

1830 次点击
所在节点    问与答
12 条回复
delectate
2018-09-10 19:37:38 +08:00
很多软件也都是这样吧……根据操作系统的不同,去拼命测试兼容性,仅此而已……
fayefang
2018-09-10 20:26:01 +08:00
@delectate 是的,那具体怎么实现的,又比如怎么让本来不支持 XP 的应用支持 XP
nfroot
2018-09-10 21:35:40 +08:00
因为系统升级后,会赠送更好的 API,或者变更了相关 API 的功能,但是旧系统没有,你想兼容就得自己去写去设计,还要兼容各系统不要冲突。

除了系统提供的兼容模式,你不是原作者基本没办法了。
fayefang
2018-09-10 22:48:56 +08:00
@nfroot 我是这块的小白,所以能说详细点嘛,就是怎么实现的兼容不同的操作系统的😯😯
msg7086
2018-09-11 07:45:01 +08:00
比如说 XP 下有一个系统调用叫 A(),后来到 Win7 了,大家觉得,诶应该给这个系统调用加点功能,于是就新给了个系统调用,叫 A_牛逼()。后来到 Win10 了,大家觉得还要再给他加点功能,于是就有了 A_特别牛逼()。
那程序员如果要用到这特别牛逼版本的函数,那自然只能运行在 Win10 上了,因为 Win7 XP 下都没有这函数啊。
同理如果要兼容多个操作系统版本,那就只能用最基础的 A(),或者是自己写逻辑,判断如果有牛逼的就用牛逼,如果没有牛逼的就用普通版。甚至有些函数是新操作系统才加入的,那就只能判断系统版本然后禁用类似的功能了。
nfroot
2018-09-11 08:49:02 +08:00
@fayefang 小白就别折腾了,这个不是你能折腾的,简单和你说吧,Chrome 是开源的,你可以拿着源码自己去做兼容,如果你做不到,那只能说明你不适合做这个操作。

最简单的兼容方法就是用虚拟机,现在虚拟机有窗口模式,就是虚拟机里的窗口和实体机的窗口无缝切换。

好了我只能回答到这里了。
nfroot
2018-09-11 08:49:57 +08:00
有源码的还可以考虑自己做兼容,但工程量浩大,没源码的基本别想了。
fayefang
2018-09-11 08:51:56 +08:00
@msg7086 了解了,感谢🙏🏻
fayefang
2018-09-11 10:18:59 +08:00
@msg7086 有没有相关的资料,我想初步学习下🙏🏻
fayefang
2018-09-11 10:19:54 +08:00
@nfroot 有没有相关资料可以学习下,小白就更不能放弃学习了,要像大佬看齐🙏🏻
msg7086
2018-09-11 23:38:42 +08:00
@fayefang 不清楚,可能要去查各种 Windows API 玩。
nfroot
2018-09-13 08:28:04 +08:00
@fayefang Chrome 本身是开源的,你去拿了源码,能改你就能做到,否则只能空谈了。你一直在强调自己是小白,但是完全没表达出是什么级别的小白,只感觉到你没戏。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/487961

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX