您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > LDMC+S60移动应用开发讲义--Symbian+C++编程基础
1移动应用开发移动应用开发----SymbianC++编程基础何何锐锐分布与移动计算实验室分布与移动计算实验室,,计算机学院计算机学院harry.he@buaa.edu.cnharry.he@buaa.edu.cn2分布与移动计算实验室本章内容本章内容编程规范Symbian工程文件基本类型异常处理内存管理描述符动态数组活动对象23分布与移动计算实验室编程规范编程规范4分布与移动计算实验室SymbianSymbian编码规范编码规范目的便于阅读理解和维护便于检查,减少出错概率有助于交流维护SymbianC++编程习惯基本准则遵循传统C++规范有具有自己特色习惯决定成败35分布与移动计算实验室命名规范命名规范通常类和函数的第一个字母大写所有单词连接在一起除了宏和资源标识之外,避免使用下划线_例如voidTObject::PrepareForCommit();classCGlobalText;6分布与移动计算实验室命名规范命名规范自动变量(局部变量)第一个字母小写需要时才声明自动变量(不要象C语言那样,在方法开头就声明所有变量)永远不要在同一行初始化多个变量全局变量不鼓励使用全局变量大写字母开头非常量的全局数据在DLL中是不支持的;昀好使用线程本地存储(T.L.S.)47分布与移动计算实验室命名规范命名规范宏所有字母大写用下划线分隔单词IMPORT_C,EXPORT_C,_TEST_INVARIANT指针和引用类型*或&放在类型旁边,而不是变量名旁边TText*data;voidTDemo::Append(constTDesC&aData);8分布与移动计算实验室命名规范命名规范类名类名通常只能以C,R,T,M开头结构用T开头静态类没有前缀字母驱动类用D开头例如ClassCBase;ClassTTypefaceInfo;ClassRFont;ClassMLaydoc;ClassUser;//静态类59分布与移动计算实验室命名规范命名规范方法名通用规则有效Setters通常是SetThing()Getters通常是Thing(),(如果该方法返回数据项的话)VoidSetOffset(TIntaOffset)TIntOffset()const;TIntoffset=GetOffset();“Get”用于获取引用TCharFormatformat;GetCharFormat(format);10分布与移动计算实验室命名规范命名规范方法名(续)以L结尾的方法表示可能Leave以C结尾的方法表示其中将数据项放入了cleanupstack中以D结尾的方法表示其中的对象将被销毁例如CStoreMap*map=CStoreMap::NewLC();611分布与移动计算实验室命名规范命名规范成员变量以i开头例如classTObject{TTypeiType;TintiElemementOffset;TPtrCiComponentValue;}12分布与移动计算实验室命名规范命名规范方法变量(形式参数)以a开头在元音前也不使用an例如voidTObject::TObject(TTypeaType,TIntaElementOffset);昀好使用方法重载,而不是缺省参数,这样可读性好,并且更加高效713分布与移动计算实验室命名规范命名规范常数K开头单词开头大写例如constTIntKMaxNameLength=0x20;constTUidKEditableTextUid={268435548};14分布与移动计算实验室命名规范命名规范枚举应当被包含在相应的类中不要全局命名空间必须用一个有意义并且无歧义的名字T开头每个枚举成员E开头特定类中的常量可以实现成枚举型,这种情况下,可以使用K815分布与移动计算实验室命名规范命名规范类命名程序设计中常用的四种类:•T-,C-,M-,R-类必须具有清晰的角色,而不是简单的方法与数据的集合每个类一个头文件头文件的布局#includefilesfriendclasses;public,protected,privatemethods;private,protected,publicdata;16分布与移动计算实验室QuestionsQuestions??917分布与移动计算实验室SymbianSymbian工程工程18分布与移动计算实验室主要文件主要文件制作安装文件用打包文件.pkg位图文件.mpm矢量图标文件.svg字符串文件.rls资源定义文件.rss资源头文件.rhr头文件.h源文件.cpp定义了项目的组成情况项目文件.mmp声明build的相关信息Build描述文件bld.infÎ到具体工程目录1019分布与移动计算实验室BuildBuild工程工程20分布与移动计算实验室bld.infbld.inf文件文件Build信息文件被bldmake命令使用,以生成abld.bat及makefiles文件prj_platformsprj_mmpfilesprj_exportsprj_testexports1121分布与移动计算实验室使用使用bldmakebldmakebldmake为工程创建abldcd\myproject\groupbldmakebldfiles使用abld创建组件或者工程文件abldbuild或者abldbuildwinsudeb22分布与移动计算实验室编译过程编译过程1223分布与移动计算实验室UIDsUIDs每个应用程序都具有唯一的UIDsUID是一个具有唯一性的32位数字Symbian用UIDs(而不是扩展名)来标识不同的文件类型在项目定义文件(.mmp)中指定UIDs24分布与移动计算实验室UIDsUIDs1325分布与移动计算实验室UID1UID1--文件类型指示器文件类型指示器指定了文件的类型.EXE(UID1=KExecutableImageUid)•如果UID1为EXE,UID2和UID3则为零.DLL(UID1=KDynamicLibraryUid).dll/.app存储文件或者其它格式的文件这些常数在e32uid.h中定义26分布与移动计算实验室UID2UID2--子类指示器子类指示器UID2指明了不同类型的DLL或者数据文件对于一个应用程序而言UID2可以三种之一KUidAppKUidAppDllDocKuidAppInfoFileUID2定义在APADEF.H和APGICHFL.H中1427分布与移动计算实验室UID3UID3--代码指示器代码指示器应用程序DLL(.app)唯一性的标识应用程序文档或数据文件将其关联到特定的执行文件和图标对于EXE而言,不需要UID2或UID3对于一个应用程序而言,其dll文件、文档以及AIF文件的UID3都是一样的。28分布与移动计算实验室UIDsUIDs的分配的分配从Symbian开发者网络可以得到发送email到uid@symbian.com指明需要的UIDs的个数指明应用程序或者项目名称0x01000000到0x0FFFFFFF之间的UIDs用于实验通常昀多能够申请10个UIDs,除非是获得了Symbian授权的公司。1529分布与移动计算实验室SymbianUIDSymbianUID分配分配Un-SymbianSignedUnprotectedProtectedPostSymbianOSv9ProtectedProtectedSymbianSignedPre-SymbianOSv9Application30分布与移动计算实验室SymbianUIDSymbianUID分配分配KNullUid0x000000000ProtectedRangeNotused-Includeslegacytestingrange0x0FFFFFFF0x000000010xFFFFFFFF0xEFFFFFFF0xDFFFFFFF0xAFFFFFFF0x9FFFFFFF0x7FFFFFFF0x6FFFFFFF0x2FFFFFFF0x1FFFFFFFReservedforfutureuse0x800000008to9UnprotectedRangeV9unprotectedUIDallocations0xA0000000AReservedforfutureuse0xB0000000BtoDNewV9testingrange0xE0000000ELegacyUIDcompatibilityrange0xF0000000FVendorIDsReservedforfutureuseV9protectedUID/SIDallocationsNotused-LegacyUIDallocationsPurpose0x700000000x300000000x200000000x10000000Range3to6127Class(es)UID1631分布与移动计算实验室mmpmmp文件文件每个项目都具有一个项目定义文件,即mmp文件,mmp文件包含了如下信息目标名称目标类型UIDVID/SIDCapability源文件目录源文件列表用户包含文件目录系统包含文件目录库文件调试库文件……32分布与移动计算实验室建立建立dlldll1733分布与移动计算实验室dlldll的的mmpmmp文件实例文件实例UID2指明了静态接口DLLDll指明了UID1的值34分布与移动计算实验室BuildBuild一个一个程序程序1835分布与移动计算实验室GUIGUI资源文件资源文件资源文件描述了如菜单、对话框、工具条等信息包含了资源的索引信息由文本资源文件.rss经过资源编译器(rcomp.exe)编译后产生(.rsc)资源编译器可以由abld.bat显式的调用,如果使用IDE,则将IDE自动调用资源文件的编译只有CodeWarrior支持得最好CarbideC++有时并不能编译资源文件36分布与移动计算实验室资源编译器输出文件资源编译器输出文件资源源文件.rss二进制资源文件(.rsc,.r01,.r02,……)每个资源由资源头文件.rsg中的一个索引标识索引便于更有效的查找资源一个资源文件中可以有1到4095个资源1937分布与移动计算实验室QuestionsQuestions??38分布与移动计算实验室主要类型主要类型2039分布与移动计算实验室基本类型基本类型基本类型也是C++的基本类型,但是Symbian在e32def.h中()重新进行了定义,以满足其命名规范所有内建类型都是T开头的(跟T类具有同等的性质)40分布与移动计算实验室基本类型(续基本类型(续11))TIntX和TUIntXX=8,16,32,64符合和无符号整型unsignedint=32bTUintTUintsignedint=32bTIntTIntunsignedlongint=32bTUint32TUint32longint=32bTInt32TInt32unsignedshortint=16bTUint16TUint16shortint=16bTInt16TInt16unsignedchar=8bTUint8TUint8signedchar=8bTInt8TInt8C++类型Symbian类型Uint64=64bTUint64TUint64Int64=64bTInt64TInt642141分布与移动计算实验室基本类型(续基本类型(续11))TReal32和TReal(=TReal64)分别为单精度和双精度浮点数运算速度比TInt慢double=64bTRealTRealdouble=64bTReal64TReal64float=32bTReal32TReal32C++类型Symbian类型42分布与移动计算
本文标题:LDMC+S60移动应用开发讲义--Symbian+C++编程基础
链接地址:https://www.777doc.com/doc-4815645 .html