Symbian C++ 三宗罪

guangbin79 2007-04-17 10:32:40
加精
1. 两段构造

依赖于CBase的两段构造,完全可以用如下代码取代:

#define NEWLD(ClassExp) new(true, false) ClassExp; CleanupStack::Pop(1);

inline TAny * operator new(TUint aSize, bool, bool)
{
ASSERT(aSize != 0);

TAny * pTmp = User::AllocLC(aSize);

return pTmp;
}

inline TAny * operator new[](TUint aSize, bool, bool)
{
ASSERT(aSize != 0);

TAny * pTmp = User::AllocLC(aSize);

return pTmp;
}

只要每个类的头文件包含以上的代码,就可以不依赖继承CBase类的两段构造。

2. 异常退出

以下代码使用了Symbian的异常退出语句,来模拟标准的C++异常处理,

#define TRY(exp) \
{ \
bool _ep_Handle = false; \
TRAPD(_ep_Exception, {exp});

#define CATCH_BEGIN \
switch(_ep_Exception) \
{ \
case KErrNone: \
_ep_Handle = true; \
break;

#define CASE(err) \
case err: \
_ep_Handle = true; \

#define DEFAULT \
default: \
_ep_Handle = true;

#define CATCH_END \
} \
if (!_ep_Handle) \
{ \
User::Leave(_ep_Exception); \
} \
}

#define THROW(err) \
User::Leave(err)

#define THROW_DEFAULT \
User::Leave(_ep_Exception)

难道编写简单、容易移植的代码就那么难么?

3. CActive 继承于 CBase

难道就不能增加一个同时继承于 CBase 和 CActive 的 CBaseActive 类么?
非得让CActive继承于 CBase类么?
干净的接口难道就不应该存在么 ?
非要限制CActiveScheduler能够处理活动对象类型为CBase么?

刚开始看Symbian C++,感觉非常的不爽,真心希望Symbian在下一版的平台代码上能够稍微改进一下。
...全文
3508 80 打赏 收藏 转发到动态 举报
写回复
用AI写文章
80 条回复
切换为时间正序
请发表友善的回复…
发表回复
feihuadao 2012-03-21
  • 打赏
  • 举报
回复
mark??????
lan695378584 2011-10-14
  • 打赏
  • 举报
回复
值得借鉴!
「已注销」 2011-08-13
  • 打赏
  • 举报
回复
楼上都是高手啊...小白路过
BlueMap 2011-01-03
  • 打赏
  • 举报
回复
新手,学习中。
yhlzln 2011-01-03
  • 打赏
  • 举报
回复
symbian是通过增加上层程序员的痛苦来减轻os开发者的痛苦的
diqun1314 2010-12-31
  • 打赏
  • 举报
回复
哎,,怎么都比BREW 平台强!~~~~~哥们现在搞Brew ,就差跳楼了···
sunleoly 2010-12-30
  • 打赏
  • 举报
回复
膜拜一下。。。帖子不错的啊。。。塞班的东西,学者学者就觉得越来越有意思了。。。
路飞-总裁 2010-12-27
  • 打赏
  • 举报
回复
回帖是种美德。
Kevin_Beyond_Shi 2010-12-27
  • 打赏
  • 举报
回复
我想nokia现在已经给答案了。后知后觉的推Meego......
java_xin 2010-12-26
  • 打赏
  • 举报
回复
打个酱油
wangoo1 2010-12-25
  • 打赏
  • 举报
回复
看不懂,
yhlzln 2010-12-24
  • 打赏
  • 举报
回复
SYmbian的东西,钻进去就觉得有意思了
fleshboy 2010-12-20
  • 打赏
  • 举报
回复
没什么可讨论的,Symbian本身就很弱智。

现在默认开发工具推荐用QT,或许能拯救一下诺基亚
t344502504 2010-12-17
  • 打赏
  • 举报
回复
有本事搞个NB的出来
昌云技术 2010-12-12
  • 打赏
  • 举报
回复
ManZY
(白桦*_*)
说的,做人要踏实、低调这句话应被所有开发中的人刻在脑子中的真理,最有意义。道理很复杂,内涵深刻,我不会说,我也在实践中。发泄固然没罪,从中汲取营养,超越今天的自己。GetMuchMoney....someday
昌云技术 2010-12-12
  • 打赏
  • 举报
回复
看了一下,激烈贴,发泄而已,哥目前也学西比安,从C++爱好者的角度来看,有令我可学的东西,值得一看,但从GetMoneyFromCustom的角度来讲,不如安卓来钱快。所以你们的话都没意义,值得激烈讨论的是多少代码行可以换多少钱这个主题。如果你写出一行代码就可以换N元大洋,那么你他妈就是成功的。
jebai0521 2010-12-04
  • 打赏
  • 举报
回复
又见挖坑
rhjyy 2010-11-21
  • 打赏
  • 举报
回复
我发现跟帖中两次的跨年度跳跃中都有一个被屏蔽的贴,是不是每次沉了之后都是被广告顶起的啊,呵呵……
rainsnowclowd 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 61 楼 satanness 的回复:]
我竟然看完了,赞也好骂也好,。。。居然是2007年的帖子。OMG[/Quote]
天啦。。。
[Quote=引用 21 楼 a14776584 的回复:]
楼主到底懂不懂 [/Quote]
你真無聊

ganag 2010-11-18
  • 打赏
  • 举报
回复
哎、、、要是我懂这些就好了,真想学习一下
加载更多回复(60)

3,120

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧