V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gemfeeling
V2EX  ›  程序员

昔时因 今日意 侃侃微软的 CRT

  •  2
     
  •   gemfeeling · 2014-06-29 17:56:09 +08:00 · 4113 次点击
    这是一个创建于 3791 天前的主题,其中的信息可能已经有所发展或是发生改变。
    多年来,Visual Studio 几经沉浮,一直是为数不多的有竞争力的开发工具之一。而其提供的 C 语言运行时环境(C Runtime,简称 CRT),是其中一块至关重要却又默默无闻的基石。某种意义上讲,庞大的 Windows 帝国和上面运行着的大部分应用和游戏,正是构建在这薄薄的一片运行时之上。而所谓“昔时因,今日意”,正是意在正本清源,循着脉络将 CRT 的来龙去脉梳理一下,也就能回答“从何处来,向何处去”这个问题。全文分为两部分,“昔时因”回顾 CRT 与 Windows 相生相伴的历史,“今日意”则着眼于当下正在进行的重大重构,于未来趋势亦可管窥一二。

    http://gulu-dev.com/post/2014-06-28-microsoft-crt
    17 条回复    2014-06-30 13:49:32 +08:00
    shuax
        1
    shuax  
       2014-06-29 18:06:59 +08:00   ❤️ 1
    写得不错
    Monad
        2
    Monad  
       2014-06-29 18:10:21 +08:00 via iPhone
    多谢分享
    Axurez
        3
    Axurez  
       2014-06-29 18:15:42 +08:00
    圖是怎麼畫的啊?
    Livid
        4
    Livid  
    MOD
       2014-06-29 18:22:21 +08:00   ❤️ 1
    请不要在不同的节点发布相同主题。

    另外一个重复的已经删除。
    WildCat
        5
    WildCat  
       2014-06-29 18:22:35 +08:00 via iPhone
    文采太棒了!赞!
    FrankHB
        7
    FrankHB  
       2014-06-29 18:40:33 +08:00
    这年头还在这里折腾个啥呢……
    CRT再有什么新版本也无所谓了,反正C标准库接口就那么些常用的,mingw-w64自己打包部署得了,默虽然默认依赖的msvcrt是古董(而且换新的会被spec里libgcc的依赖坑)但是其它一些辅助运行时(比如mingwex)擦屁股还算干净。
    反正cl最近几年都是残货,cl的ABI历来奇葩。VC++就算不放置play理所当然也退居二线了。
    PS.isprint自己撸一个不费事,但是iswprint这种就算去掉locale-specific也太那啥了……测试用例都没法找全。。。
    Wine里的GetStringTypeW什么的完全不明觉厉啊。
    http://git.musl-libc.org/cgit/musl/tree/src/ctype/iswprint.c
    https://www.sourceware.org/cgi-bin/cvsweb.cgi/src/newlib/libc/ctype/iswprint.c?cvsroot=src
    疯了……
    min
        8
    min  
       2014-06-29 20:08:52 +08:00
    Ramond Chen 的书不错的
    gemfeeling
        9
    gemfeeling  
    OP
       2014-06-29 20:30:56 +08:00
    @Livid 呵呵抱歉,以后会留神的 :)
    lsmgeb89
        10
    lsmgeb89  
       2014-06-29 20:32:20 +08:00   ❤️ 1
    文笔不错啊~
    gemfeeling
        11
    gemfeeling  
    OP
       2014-06-29 20:35:00 +08:00
    @WildCat 谢谢 :)
    gemfeeling
        12
    gemfeeling  
    OP
       2014-06-29 20:36:57 +08:00
    @Axurez Word 里面画布上直接拖出来的,见笑见笑 :)
    vob636
        13
    vob636  
       2014-06-29 20:43:14 +08:00   ❤️ 1
    写的非常不错!!赞一个,虽然已经逃离Windows阵营……但是再次见到这么酣畅淋漓的文章,真心感觉作者太牛了!!!
    gemfeeling
        14
    gemfeeling  
    OP
       2014-06-29 20:45:27 +08:00
    @FrankHB

    我在 VS2013 里试了一下你的这个 case ,貌似会进 "test passed",环境是 Win7 64 + VS2013 Update 2
    你试试看建个空工程跑一下,大型项目里 locale 或其它被影响估计也是常事
    est
        15
    est  
       2014-06-29 21:46:58 +08:00
    哇,技术贴。32个赞。
    hewigovens
        16
    hewigovens  
       2014-06-30 00:09:04 +08:00
    看完了, 写的很赞, 让我想起了在学校那会写exe还得自带msvcr42.dll的事情了
    chenggiant
        17
    chenggiant  
       2014-06-30 13:49:32 +08:00
    虽然不太懂,但还是看完了!很流畅,赞一个!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3703 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:28 · PVG 12:28 · LAX 20:28 · JFK 23:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.