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

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

http://gulu-dev.com/post/2014-06-28-microsoft-crt
4143 次点击
所在节点    程序员
17 条回复
shuax
2014-06-29 18:06:59 +08:00
写得不错
Monad
2014-06-29 18:10:21 +08:00
多谢分享
Axurez
2014-06-29 18:15:42 +08:00
圖是怎麼畫的啊?
Livid
2014-06-29 18:22:21 +08:00
请不要在不同的节点发布相同主题。

另外一个重复的已经删除。
WildCat
2014-06-29 18:22:35 +08:00
文采太棒了!赞!
FrankHB
2014-06-29 18:27:56 +08:00
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
2014-06-29 20:08:52 +08:00
Ramond Chen 的书不错的
gemfeeling
2014-06-29 20:30:56 +08:00
@Livid 呵呵抱歉,以后会留神的 :)
lsmgeb89
2014-06-29 20:32:20 +08:00
文笔不错啊~
gemfeeling
2014-06-29 20:35:00 +08:00
@WildCat 谢谢 :)
gemfeeling
2014-06-29 20:36:57 +08:00
@Axurez Word 里面画布上直接拖出来的,见笑见笑 :)
vob636
2014-06-29 20:43:14 +08:00
写的非常不错!!赞一个,虽然已经逃离Windows阵营……但是再次见到这么酣畅淋漓的文章,真心感觉作者太牛了!!!
gemfeeling
2014-06-29 20:45:27 +08:00
@FrankHB

我在 VS2013 里试了一下你的这个 case ,貌似会进 "test passed",环境是 Win7 64 + VS2013 Update 2
你试试看建个空工程跑一下,大型项目里 locale 或其它被影响估计也是常事
est
2014-06-29 21:46:58 +08:00
哇,技术贴。32个赞。
hewigovens
2014-06-30 00:09:04 +08:00
看完了, 写的很赞, 让我想起了在学校那会写exe还得自带msvcr42.dll的事情了
chenggiant
2014-06-30 13:49:32 +08:00
虽然不太懂,但还是看完了!很流畅,赞一个!

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

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

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

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

© 2021 V2EX