小菜用的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.我想我实在太菜了...总之请各位大虾不吝赐教,在线等解答。谢绝灌水,不欢迎复制粘贴,谢谢。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
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会提供大量的库函数,让你直接调用。
不知道讲的是否通俗易懂。