symbian学习第一天

第一章:
1.接触到第一个Symbian OS 程序(hello world级别的)
#include<e32base.h>
#include<e32cons.h>
LOCAL_D CConsoleBase* gConsole;
 
GLDEF_C TInt E32Main()
{
   _UHEAP_MARK;
   CTrapCleanUp* cleanupStack = CTrapCleanUp::New();
   TRAPD(error,ConsoleMainL());
   _ASSERT_ALWAYS(!error,User::Panic(_L("PEP"),error));
   delete cleanupStack;
   _UHEAP_MARKEND;
   return 0;
}
 
E32Main()建立起一个错误处理框架。它建立一个清理栈(cleanupStack),然后在捕获装置(TRAPD)下调用ConsoleMainL().捕获装置捕获错误,更准确地说,它捕获异常退出的任何函数。TRAP()函数如同集成的try和cathc,User::Leave()如同throw,右名字后以L结尾的函数如同在原型中带有throwns的函数(ConsoleMainL())。
 
void ConsoleMainL()
{
    gConsole = Console::NewL(_L("HELLO TEXT"),TSize(KConsFullScreen,KConsFullScreen));
    CleanupStack::PushL(gConsole);
    MainL();
    User::After(5000000);
    CleanupStack::PopAndDestory(gConsole);
}
 
 
void MainL()
{
   console->Printf(_L("Hello world!/n"));
}
 
e32base.h包含一些在大部分Sybian OS程序中使用的基本类。e32cons.h用于控制台界面,因此是针对文本模式程序的,对于GUI程序不一定需要。
 
 
2.项目定义文件
可以针对两种环境生成程序:仿真器,目标机器
我们从生成项目以运行于仿真器,它使用的是Metrowerks CodeWarrior C++编译器。 我们使用调试生成,因此可以看到符号表示的调试信息,可以使用一些有用的内存泄漏检查工具。 然后使用GNU c++编译器(GCC)针对目标Symbian os手机生成该项目,使用的是ARM指令集。在这一阶段,将使用发布生成,因为这是创建最后可用的应用程序的最终工作,如果需要在目标机器上进行调试,则需要为ARM目标进行调试生成。因此需要生成同样的源代码两次,事实上,对了演示的目的,我们将生成三次源代码,因为iekeyi从命令行编译代码,也可以在CodeWarrior IDE中生成。
   每种类型的生产需要不同的项目文件。为了简化,可以将所有需要的信息放到一个一般性的项目定义文件中。然后针对一种或多种可能的生成环境,使用提供的工具将该文件翻译成生成的文件或项目文件。项目定义文件具有扩展名".mmp"(它代表"makmake project").与项目HelloText对应的这个文件的内容如下:
//hellotext.mmp
TARGET                HelloText.exe
TARGETTYPE         exe
SOURCEPATH        .
UID                      0
SOURCE               Hellotext.cpp
USERINCLUDE      .
SYSTEMINCLUDE   /epoc32/include
LIBRARY               euser.lib
 
这是定义整个项目的足够信息,它能够针对任何平台和环境配置要创建的文件。
 
3.组件定义文件
Symbian OS生成工具还需要提交一个组件定义文件,这个文件的名字总是为bld.inf,其中包含说有项目定义文件的列表,这些文件组成了该组件。
//BLD.INF
PRJ_MMPFILES
hellotext.mmp
 
 
 
第二章
1.Symbian OS及其应用程序可以分为不同的组件类型
内核:管理计算机硬件的资源。
应用程序:具有用户接口的程序。每个应用程序均在独立的进程中运行,具有自己的虚拟地址空间,应用程序之间的分界线就是进程边界。由于应有程序的地址空间是完全独立的,所以它不能覆盖其他应用程序的数据。
服务器:指不具有用户接口的程序。每个服务器管理一种或一种以上的资源。服务器会提供一个API,以便客户端可以使用服务器提供的服务。服务器可以是应用程序,也可以是其他服务器。每个服务器一般运行于自身进程中。
引擎:指的是应用程序中操纵数据,而不是直接与用户交互的部分。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值