当前位置: 代码迷 >> Symbian >> 初学者问关于symbian API框架和系统库
  详细解决方案

初学者问关于symbian API框架和系统库

热度:2004   发布时间:2013-02-26 00:00:00.0
菜鸟问关于symbian API框架和系统库
小菜用的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.我想我实在太菜了...总之请各位大虾不吝赐教,在线等解答。谢绝灌水,不欢迎复制粘贴,谢谢。


------解决方案--------------------------------------------------------
探讨

没人么...

只好自己再顶...

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

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

------解决方案--------------------------------------------------------
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会提供大量的库函数,让你直接调用。
  

不知道讲的是否通俗易懂。