菜鸟问关于symbian API框架和系统库

elf0223 2010-03-25 11:47:34
加精
小菜用的IDE是carbide.c++ 2.0,SDK是S60 3rd Edition SDK for symbian OS,Supporting Feature Pack 1, for c++.
所有的东西都放在D盘下(perl解释器路径d:\perl)
java runtime enviroment和java develop kits放在d:\java
carbide放在d:\symbian
SDK(模拟器和开发库)放在d:\symbian
操作系统根据路径风格可以看出来大概是windows xp(哪个sp不晓得,大概是sp2吧呵呵)

总之小菜的环境就是上面那样了,其实我要问的东西跟环境没什么关系...

初接触symbian开发,很多不明白的地方:
1.S60Doc中的API文档,有API Reference和Symbian OS v9.2两个部分,API Reference当然就是指symbian提供的
C++开发类库框架了,Symbian OS v9.2的部分是指Symbian OS Library.我想问一下,开发框架提供的API和这个
系统开发库提供的东西有什么不同?是不是API框架是系统开发库的C++类库封装,就像MFC对win32 API的封装一样
的?还是说symbian系统本身就是用C++开发的,因此提供出来的API直接就是C++类库的形式,根本就没有C函数式
的API?那么symbian OS Library又是怎么回事?我在(S60Doc文档中)索引里面搜索memset(),这个函数貌似在
symbian OS Library当中有提供,就在Syslibs STDLIB里面?

2.我想在symbian系统中开发一个库(静态库动态库先不管)给别人调用。我的这个库应该以C函数库的方式来提供,
(因为调用我的库的人是用C来调用)。我的这个库主要提供文件操作的功能,实际上我的库也就是在symbian系统上
提供一个C形式的封装。那么,我应该怎么来开发这个库呢?如果是调用symbian提供的C++ 框架API,这样的话,
我应该怎么封装C++函数却让它成为一个C库呢?另外就是symbian OS Library中是否提供了像标准C函数库一样的
fopen()一样的函数?如果是这样的话,我就可以直接封装这个fopen()函数了吗(您可能会问我为什么要提供这样
一个库,原因是这样的,向上提供一个统一的文件操作函数接口供C调用,不管系统是symbian还是windows mobile)?

3.我想我实在太菜了...总之请各位大虾不吝赐教,在线等解答。谢绝灌水,不欢迎复制粘贴,谢谢。
...全文
501 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
bsr2009 2010-03-31
  • 打赏
  • 举报
回复
elf0223 2010-03-31
  • 打赏
  • 举报
回复
所有的东西最终都调用库来实现
在linux中 C库调用系统接口 层次比较清楚 但是其它的系统中往往会出现相互的调用

不扯了 结贴
zhyang18 2010-03-28
  • 打赏
  • 举报
回复
学习了
defend2010 2010-03-27
  • 打赏
  • 举报
回复
虽然看不懂语言编程!但觉得你写得不错!
  • 打赏
  • 举报
回复
快用QT吧
blackfacewa 2010-03-26
  • 打赏
  • 举报
回复
1>symbian API框架
我不是很理解你的这个名字, symbian API来说吧。
Symbian对C++进行了一些封装。比如字符串,Symbian中叫做描述符,其本质也就是char*之类的,
用类进行了一些封装。大体上和C++都是一样的。
如果你要问Symbian的OS框架,我不是很清楚。任何操作系统从分层的概念上讲都是:
上层 UI
中间层是封装的中间件[一些库等等]
底层驱动
最下层的硬件

Symbian是一个嵌入式的系统,因此从用户的角度讲,用户操作键盘或者触摸屏,屏幕显示操作结果。
那么这个过程简单来讲就是:用户触发硬件[键盘、屏幕],系统绘制用户想要的结果到屏幕上。

你用的电脑是XP,那么XP上,Windows有自己的一套绘图机制,和消息触发机制。
那么在嵌入式的Symbian平台上,Symbian肯定也有自己的一套绘图机制和事件的触发机制。

这样的话,要在symbian平台的手机上绘制一些东西、图片等等,那么就要使用Symbian提供的绘图接口,这些就是你提到Symbian的库。
这些库肯定是有个层次结构,相互之间的依赖关系,这些依赖关系和层次结构就组成了Symbian的API的框架。

2>系统库
举个例子:
你用c语言写程序,当你想打印一个字符串到屏幕的时候你是用
printf("Hello World\n");
printf函数的实现在那里?谁实现的?printf就是库函数。

同样的Symbian也提供了大量的库函数,因为如果你在Symbian上开发的话,如果所有的程序都让你自己手动实现的话,那个工作量是不可想象的,因此Sybian会提供大量的库函数,让你直接调用。


不知道讲的是否通俗易懂。
赵4老师 2010-03-26
  • 打赏
  • 举报
回复
记不得哪位C++大牛在哪本学习C++的书的前言里面说过
“用C语言1000行源码能完成的工作千万不要用C++重写!”
gwemail2003 2010-03-26
  • 打赏
  • 举报
回复
1 偶也是菜鸟,看了,不懂。等高手
cylure 2010-03-26
  • 打赏
  • 举报
回复
学到了啊!!!!!
zhenyunyuan 2010-03-26
  • 打赏
  • 举报
回复
博大家 一笑
elf0223 2010-03-25
  • 打赏
  • 举报
回复
没人么...

只好自己再顶...

A:现在xx系统上的xx框架十分优秀,xx系统上所有的应用开发都基于这个框架。
B:是吗?我回去看看。

B回去上网一查,果然,好多评论这个史无前例的NB框架。
要成为一个优秀的程序员,怎么能不懂这么NB的框架呢?
于是B废寝忘食,食不甘味,通宵达旦,刻苦钻研...
N年之后(N>5),B终于深刻的体会到这个NB框架的强悍、优美、动人以及...它的垃圾...
不论怎么样,用这个框架来干活的话,B绝对是牛人了

有一天,B遇到了A。
B:你知道那个框架里面的xx吗?它可以用来完成一些你意想不到的功能,编写出你意料不到的强大的程序。
A:我不知道,不过,你说的那个框架过时了,现在流行xx平台,这是xx公司花了xx年费心打造的强大的无所不能的...你知道,你用xx框架开发xx应用,以前要xx做要xx时间,现在,有了这个无所不能的平台,你只要...就可以了。怎么样,很厉害吧?赶快去了解下这个xx平台,别落伍了哦...
B:(痛苦的别过脸)

B:我X!!!
elf0223 2010-03-25
  • 打赏
  • 举报
回复
自己先顶

话说我十分讨厌C++框架
Q:话说你要写基于XX系统上的XX应用?
A:嗯。
Q:是这样的,这个系统为了方便应用开发人员,特提供了XX框架供人调用,这是一个十分优秀的应用开发框架
A:哦,是吗,怎么用这个系统框架?
Q:首先,这是一个C++类库框架.所有的类基于CBase类...
A:哦。
Q:然后是应用程序类,文档类,视图类...它们符合MVC构架的原理。
A:(晕乎中)嗯,好的
Q:那么让打开XXIDE,你会看到xxapp.cpp xxdocument.cpp xxview.cpp xxxx.cpp.
A:嗯(好的,终于开始了,要写程序啦)
Q:这个框架隐藏了xx入口函数,把它放到xx类里面去了。总之,应用程序开始于xx类的实例化。
A:嗯。
Q:然后...
A:嗯,我知道了,总之这是一个框架,我们要开发应用,就是给这个框架填填空题。
Q:是这样的。
A:TMD问题是那么多框架都要填填空题...还没那个填空题是真正省事的。尤其是C++的填空题!太TMD麻烦了!
Q:...

lovelbmmm15 2010-03-25
  • 打赏
  • 举报
回复
学习中学习中学习中学习中学习中学习中学习中学习中学习中学习中
perfecttt 2010-03-25
  • 打赏
  • 举报
回复
mark!!!
woniugui 2010-03-25
  • 打赏
  • 举报
回复
路过,不会帮顶!
q494591991 2010-03-25
  • 打赏
  • 举报
回复
哈哈 欧耶
zxbbhy 2010-03-25
  • 打赏
  • 举报
回复
学习中,谢谢
mcrun 2010-03-25
  • 打赏
  • 举报
回复
非常感谢 呵呵
杰哥哥啊 2010-03-25
  • 打赏
  • 举报
回复
xuexiixuexi
brahao 2010-03-25
  • 打赏
  • 举报
回复
看不懂,学习学习吧!!!!!!!
加载更多回复(6)

3,120

社区成员

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

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