Symbian学习文档(3)--HelloWorld控制台程序解析说明

这里的文件是SDK里自带的一个例子,如果不是熟悉的话,可以去SDK中将其导入到IDE中。

(1)文件结构如下:

 

Symbian学习文档(3)--HelloWorld控制台程序解析说明_第1张图片

(2)Includes文件

这个是系统的库文件和头文件的保存地方,这个文件和具体的SDK有关。新建工程时自动生成,不用管它。

 

(3)CommonFramework.h

 

//File:CommonFramework.h // EUSTD.H #ifndef __EUSTD_H #define __EUSTD_H //头文件 #include <e32base.h> #include <e32cons.h> //宏定义 _LIT(KTxtEPOC32EX,"EPOC32EX"); _LIT(KTxtExampleCode,"E32 SDK Example Code"); _LIT(KFormatFailed,"failed: leave code=%d"); _LIT(KTxtOK,"ok"); _LIT(KTxtPressAnyKey," [press any key]"); LOCAL_D CConsoleBase* console; // 创建Console对象 LOCAL_C void doExampleL(); // 具体实现Console输出的函数 LOCAL_C void callExampleL(); // 初始化清理栈,并调用doExampleL函数 //E32程序的入口点 //GLDEF_C的含义是全局函数,宏定义为无 GLDEF_C TInt E32Main() { __UHEAP_MARK; //堆检测宏,用于标记着开始检测用户的堆使用情况 CTrapCleanup* cleanup=CTrapCleanup::New(); // 创建清除栈对象 TRAPD(error,callExampleL()); // 捕获异常,类似于try catch;如果出现异常,将其抛出,然后执行之后的代码 //__ASSERT_ALWAYS(c,p) == (void)((c)||(p,0)) //c为一条件表达式,值为true或false;p为一函数 //意思是:如果C为False的话,则调用函数P __ASSERT_ALWAYS(!error,User::Panic(KTxtEPOC32EX,error)); delete cleanup; // 删除栈对象 __UHEAP_MARKEND; //标记结束检测用户的堆使用情况 return 0; } //初始化控制台Console对象,将其入栈 //调用要输出内容的函数doExampleL LOCAL_C void callExampleL() { //创建Console对象 console=Console::NewL(KTxtExampleCode,TSize(KConsFullScreen,KConsFullScreen)); CleanupStack::PushL(console); //将对象入清除栈 TRAPD(error,doExampleL()); // 执行doExampleL(),出现异常,则抛出 //出现异常的话,进行处理 if (error) console->Printf(KFormatFailed, error); else console->Printf(KTxtOK); console->Printf(KTxtPressAnyKey); console->Getch(); // 从Console获取一字符,然后忽略,退出Console CleanupStack::PopAndDestroy(); //删除console,最后要清除栈上所有的资源 } #endif

 

(4)HelloWorld.cpp

 

//File: HelloWorld.cpp #include "CommonFramework.h" // 具体函数 LOCAL_C void doExampleL() { _LIT(KHelloWorldText,"Hello world!/n"); console->Printf(KHelloWorldText); }

 

(5)HelloWorld.mmp

 

//File: HelloWorld.mmp // 定义相关的路径和头文件信息 //TARGET指定生成的可执行文件,TARGETTYPE确认该文件是个EXE文件 //UID信息和.exe无关,但在这里,将它显式定义为0,用于消除错误警告 TARGET HelloWorld.exe TARGETTYPE exe UID 0 VENDORID 0x70000001 //SOURCEPATH用于指定该项目的源文件的位置 //SOURCE指定单个源文件(SOURCE可用于指定多个源文件) // . 表示同级目录下; // ../ 表示上级目录 SOURCEPATH . SOURCE HelloWorld.cpp //USERINCLUDE和SYSTEMINCLUDE指定用户搜索的目录以及系统包含文件 //所有的Symbian OS都应该把"/epoc32/include"指定为它们的SYSTEMINCLUDE路径。 USERINCLUDE . USERINCLUDE CommonFramework.h SYSTEMINCLUDE /Epoc32/include //LIBRARY指定要连接的库 LIBRARY euser.lib

 

(6)BLD.INF

 

//File: BLD.INF // Component description file PRJ_MMPFILES HelloWorld.mmp

 

(7)ABLD.BAT

 

@ECHO OFF REM Bldmake-generated batch file - ABLD.BAT REM ** DO NOT EDIT ** perl -S ABLD.PL "/Symbian_Demo/HelloWorld//" %1 %2 %3 %4 %5 %6 %7 %8 %9 if errorlevel==1 goto CheckPerl goto End :CheckPerl perl -v >NUL if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed? goto End :End

 

整个文件代码都在上面,里面有具体解释。

 

你可能感兴趣的:(Symbian学习文档(3)--HelloWorld控制台程序解析说明)