主题:【原创】Chrome程序初探(序) -- 素里太守
鲜花已经成功送出。
此次送花为【有效送花赞扬,涨乐善、声望】
似乎还要装for vista的SDK。。。
我一直想说说LINUX的东西,但是不知道合适不合适...
不过...这样一来...光信息技术一个版面可能不够用吧...
让大伙赶紧看看,学习一下。
经验用光了,回头来补花。
感觉河里不少IT高人,嘿嘿,大家都出来撒几篇,也够学的了。
跑到狗狗那里没见有给2000用的Chrome
昨天把Mozilla的Firefox包也挡了下来,不为别的,就是做个在两个浏览器的代码结构和开发上做个小小的横向比较。比起Chrome来,FireFox整个小了一圈(400MB vs 30MB,也许还有其它的包,这只是俺目前的初步印象)。
从相关设计文档上Firefox比Chrome就差的不是一点点。GOOGLE到底是有米,比Mozilla这个松散组织做的好很多。
Firefox的“进入门槛”比Chrome可是高多了。俺的个人习惯是拿到一个产品从来不看说明书,先摆弄摆弄,遇见问题再翻说明书。Chrome的包展开后俺初看一下目录结构就开始用VS打开Solution文件开始Build.FireFox?俺现在连门朝什么地方开都不知道。那几个Bat 文件到可能是开门的钥匙。
不管如何,VS 和 C++ Builder是Windows上两个最主要的C++开发工具,Mozilla只要提供一个工具的开发文件(sln/vcproj或者grp/prj)就能够大大降低其入门门槛。可惜,没有?!
如果能在一个IDE环境中轻松编译,链接,调试一个软件产品。学习,分析这个产品就不是个难事情。代码就是最好的文档,DEBUG就是最好的老师。看不懂源码没有关系,设个断点,看看调用栈就齐了。
一个(软件)产品的普及推广过程中,第3方开发的介入是一个非常重要的因素。对程序员而言,最兴奋的莫过于自己编写(改动)的代码立即展现出效果。从这点上讲,俺看好Chorme而不是Firefox.
很多开放源码项目都是在跨平台基础上的,主要的参与者往往都是在linux环境下工作,他们压根就没用到IDE。都是用最基本和最常见的编译工具,如批处理文件。
有一次我用开发源码的java项目,是一个更新的版本,看了一会发现压根就没有windows下的bat执行文件(原来是用的)。
这样我在河里潜水还可以进步。。一举两得。
Mozilla的一个Extension而已?
标准的GNU源码编译方式
./configure
make
make install
在windows上也一样(可能不需要make install).这是一种跨平台的方法.
不过有一点,这种默认的方法的配置选项不太好,你可以修改.mozconfig文件来配置编译选项.
chrome是怎么个样子我不知道,不过mozilla为了提供一个跨平台的应用程序框架,可是做了不少工作的.基于这个框架,开发了firefox,thunderbird等等一堆"鸟"玩意.
老兄要是对mozilla感兴趣,可以去http://developer.mozilla.org/看看.设计确实很精巧.而基于mozilla框架开发程序,也挺有意思,xul+javascript,简直就跟写HTML一样简单.
比较同意楼下Kavin的想法,不必毕其功于一役,先写,而后逐步完善。
const std::string::value_type most_sig_digit(escaped_text[i + 1]);http://www.ccthere.com/article/1782263.html
const std::string::value_type least_sig_digit(textplusplus);
(i+1)<max, 如果i+2=max的话 escaped_text[i+2] 就会访问escaped_text[max]。这样的话是不是就访问了长度为n得数组的第n+1个元素?
是不是应该判断 (i+2)<max
:%崩溃的这个问题是因为 max_digit_index 是 size_t类型的,也就是unsigned, max<2的话 max_digit_index就under flow了
在该循环中 i 永远小于MAX,因此i + 1最多等于MAX,这里MAX等于字符串长度。在这种字符串内存中,内存真实长度永远等于MAX + 1,最后一个字符后【MAX】= 0。因此访问 i + 1永远不会出现非法访问,访问 i + 2则“有可能”出现,具体情况取决于那块内存类型 --- 堆内存,栈内存?