chrome 等浏览器底层怎么实现的支持 windows 操作系统的不同版本的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fayefang
V2EX    问与答

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

  •  
  •   fayefang 2018-09-10 19:20:17 +08:00 2152 次点击
    这是一个创建于 2626 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    最简单的兼容方法就是用虚拟机,现在虚拟机有窗口模式,就是虚拟机里的窗口和实体机的窗口无缝切换。
    好了我只能回答到这里了。
    nfroot
        7
    nfroot  
       2018-09-11 08:49:57 +08:00
    有源码的还可以考虑自己做兼容,但工程量浩大,没源码的基本别想了。
    fayefang
        8
    fayefang  
    OP
       2018-09-11 08:51:56 +08:00 via iPhone
    @msg7086 了解了,感谢
    fayefang
        9
    fayefang  
    OP
       2018-09-11 10:18:59 +08:00 via iPhone
    @msg7086 有没有相关的资料,我想初步学习下
    fayefang
        10
    fayefang  
    OP
       2018-09-11 10:19:54 +08:00 via iPhone
    @nfroot 有没有相关资料可以学习下,小白就更不能放弃学习了,要像大佬看齐
    msg7086
        11
    msg7086  
       2018-09-11 23:38:42 +08:00
    @fayefang 不清楚,可能要去查各种 Windows API 玩。
    nfroot
        12
    nfroot  
       2018-09-13 08:28:04 +08:00
    @fayefang Chrome 本身是开源的,你去拿了源码,能改你就能做到,否则只能空谈了。你一直在强调自己是小白,但是完全没表达出是什么级别的小白,只感觉到你没戏。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     915 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 20:59 PVG 04:59 LAX 12:59 JFK 15:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86