现在的位置: 首页 > 综合 > 正文

SKYPE竟然改用BCB来编译了?。。。

2013年09月25日 ⁄ 综合 ⁄ 共 1623字 ⁄ 字号 评论关闭
skype最近升级到2.0版本了,这个版本除了保持先前版本的通话质量优良和运行稳定的一贯作风外,最主要的是还增加了视频聊天的功能,再比较一下那个视频经常会自动停掉的MSN Messenger,后者简直是垃圾了。。

如果我没有记错的话,以前的skype使用QT开发的,Windows下的版本有对qt.dll的引用。。。。。但是,今天无聊间拿eXeScope打开skype看,结果大吃一惊。。。。。skype.exe的资源下有个熟悉的“RCData”段,没错,就是Delphi和BCB的程序存储Form资源的那个段,再仔细看看,果然不错,各个窗体的名称都赫然其中(这个exe竟然没有压缩,难道开发者故意拿出来给我们看的?)。

窗体的命名都是TSkxxxx,其中更有一个TSkSkinForm,想必是所有支持Skin功能的Form的基类了,没一定以后哪个版本skype就可以支持换肤功能了。。。

第二个发现:skype所有的界面控件并不是使用的标准vcl控件,而是使用的TntUnicode系列支持Unicode的控件来开发的,没错,vcl到现在为止还没有推出unicode的版本实再是太不符合时代潮流了,这点skype选择正确了。

这篇Blog的标题写的是“SKYPE竟然改用BCB来编译了”,使用BCB只是我的猜测而已,理由呢,因为先前的Skype是用QT写的,底层通讯代码按理来说也是C++的,其实通讯代码只要写得正规,跨平台编译是绝对没有问题的,所以skype开发小组完全没有必要用Delphi来重写所有代码,而只要使用BCB做个UI,再使用先前的底层代码就可以了,因此,我主观的认为它是用BCB来写的。。。想想现在Delphi和BCB已经差不多是末日黄花了,他们这样的选择有点风险啊。。。。。(不过,现在的VCL其实已经够健壮了,开发桌面软件,再用个3、5年应该没有问题)。

又想到,既然skype的Windows版变成了使用Windows下的本地编译器,而Linux等平台下的软件应该还会继续使用QT,那么今后就会面临维护两套代码的问题,看来skype最近赚得不少,开始大手大脚的开发软件了。。

===============================================================
以下内容添加于2006.03.14

经本人进一步查证,更正以上的部分说法:
1)Skype Windows的客户端部分为Delphi开发,应该是Delphi7,但是没有使用CLX(即基于QT的VCL),也没有证据表明它是使用Indy来开发网络通讯部分的。另外,使用静态和动态分析工具也没有发现它引用了非系统的dll(其实整个Skype安装完后就那么一个exe文件),因此有两种可能:1)它使用Link功能将c++写的通讯部分obj文件编译到exe文件内了,2)它用pascal语音重新实现了一遍通讯功能(个人认为可能性不大)。或者还有其它可能,我才识疏漏,不清楚了。
2)Skype Linux使用QT开发,应该是直接使用QT,而不是使用Kylix。

以上内容部分参考了Skype的招聘信息:
http://jobs.skype.com/tags/london/

===============================================================
以下内容添加于2006.03.15

总算下载了DeDe,继续纠正我先前无知的说法:
1)Skype Windows中确实使用了Indy控件,很有可能其通讯部分是使用Indy来实现的。
2)似乎从来没有什么证据证明过Skype Windows曾经用QT开发过,看来整件事彻头彻尾都只是我自己的幻想而已了。
部分人可能觉得我很无聊,为了这么件P大的事浪费时间,其实我自己更不愿浪费时间,只是我不能容忍自己将错误的观点传给那么多浏览这篇东西的人。。。希望这是我最后一次修正了。

抱歉!评论已关闭.