Symbian
文章平均质量分 73
btooth
这个作者很懒,什么都没留下…
展开
-
Symbian OS异常三步曲之三:两段构造
Symbian OS异常三步曲之三:两段构造为了在堆上分配一个CExample对象内存空间,调用该类的构造函数,如果构造函数本身就异常退出了,那么分配给对象的内存和构造函数中已经分配的内存都将泄漏,因此,C++的构造函数绝对不能发生异常。如果,为了初始化一个对象,必须要编写发生异常的代码,例如内存分配或读取可能丢失的文件,损坏了的配置文件等,这时候,就需要使用两段构造了。一、两段构造的格式原创 2006-09-12 15:24:00 · 1567 阅读 · 1 评论 -
描述符浅析
一、不可修改的描述符(基类TdesC)通过length()方法获取描述符长度。实际上描述符的长度都是由4个字节即32位来保存的,但实际上,其中的4位留做他用,只有28位用来保存描述符的长度,这样的话一个描述符的最大长度就是228字节,即256MB。而这4位用来表示描述符的类型,目前共有5个派生描述符类型,足够用。 对于所有的描述符,要访问其中数据,通过基类TdesC的非虚方法Ptr()原创 2006-07-05 11:52:00 · 3066 阅读 · 2 评论 -
蓝牙概述
目的为蓝牙提供支持。蓝牙是一种小范围无线通信技术,Bluetooth SIG为其制定了蓝牙规范v1.1。 蓝牙堆栈就像其他许多通信技术,蓝牙的模块层次构成了堆栈。其结构如下:蓝牙堆栈蓝牙主机控制器模块Bluetooth Host Controller作为蓝牙的底层,是典型的硬件实现,应用程序(或在蓝牙上添加的服务)不能直接控制。蓝牙主机模转载 2006-07-15 10:08:00 · 2973 阅读 · 3 评论 -
VS2003环境下Symbian工程的导入与建立
本文讲述怎样导入项目,怎样创建S60项目。这些内容都是我今天花一天时间查阅资料并摸索出来的,中间很可能有不少错误是我没有发现的,欢迎大家指正。阅读本文以前,请保证你的开发环境已经设置好,而且经过验证没有问题。若这部分的内容你不清楚,请阅读我的另外一篇文章Symbian OS开发入门(一) :基于VS.Net 2003的Symbian开发环境的准备我将讲解4个部分的内容,前3部分内容是独立的,没转载 2006-07-18 10:50:00 · 1441 阅读 · 0 评论 -
Series60套接字使用指南
Series60套接字使用指南一、关键组件:1、 套接字服务器:提供对套接字协议的共享且通用性的访问。2、 客户端API:提供对套接字服务器的受控访问。3、 服务器插件系统:这里称为协议模块或PRT。二、客户端和服务器:套接字表示两个参与者之间连接的端点,两个参与者分别被称为服务器和客户端。服务器被动等待到来的连接,而客户端则主动请求与服务器建立连接。三、断开式和原创 2006-07-17 15:37:00 · 1789 阅读 · 0 评论 -
基于VS.Net 2003的Symbian开发环境的准备
[来源自]http://www.wda.com.cn/thread-321013-1-1.html【起点-SDK和IDE的选择】 本文主要为学习Symbian开发的初学者讲授如何准备开发环境。对Symbian开发有兴趣、具备一定软件设计基础的朋友都可以来一起研究。需要说明的是,对于学习Symbian开发,需要有较为牢固的编程经验(这里我们暂时要求具有较好的C++程序语言设计能力)转载 2006-07-18 10:47:00 · 1410 阅读 · 0 评论 -
Symbian翻译 之 如何寻找和连接到远程设备
如何寻找和连接到远程设备当一个应用程序连接到远程设备以便应用其某个服务时,我们需要几个步骤:首先看看是否有想要与之通信的设备。然后察看所需要的服务是否可用。最后,应用程序需要进行连接,另外可能还需要进行些安全措施下面几个主题将依次介绍相关步骤: 选择远程设备的方法 如何查询远程设备 如何查询远程设备上的服务 如何同远程设备连接和传输数据转载 2006-07-17 15:23:00 · 1234 阅读 · 0 评论 -
Symbian 缓冲类 CBufBase 基础
CBufBase类规定了动态缓存的接口标准,在内存中存储缓冲数据,可以动态的扩展和收缩。CBase是CBufBase的父类,它使所有从他 派生的类都在heap(堆)上初始化。CBufBase类的成员函数可以归为以下几类:基本函数包括: InsertL(), Read(), Write(), Delete(), Reset() 和 Size();这些函数的可以和内存的其他部分进行数据交换,并转载 2006-07-22 10:53:00 · 1665 阅读 · 0 评论 -
关于方法CEikonEnv::Static()方法和宏iEikonEnv的使用区别。
为了实现音乐文件的浏览,即查找功能,我们需要产生一个对话框窗口,如下:真机运行时,该窗口之前还有一个选择手机或存贮卡的窗口,因为模拟器不具备扩展卡,所以直接显示上面这个窗口。上面第一个窗口的显示是通过类MGFetch的RunL()方法产生。第二个窗口的显示是通过iEikonEnv或者是CEikonEnv::Static()产生的。那么iEikonEnv和CEikonEnv::S原创 2006-07-31 15:03:00 · 2137 阅读 · 0 评论 -
Symbian内存管理的二十二条军规
1、C类必须有析构函数,这是CBase的一个虚函数。2、C类的构造函数和ConstructL()必须为protect或private类型的成员函数3、在C class中必须有一个NewLC()函数,除非它是嵌套类。NewL()是可选的,并且总是根据NewLC()来实现。4、NewL()和NewLC()在c class中必须是static函数。5、C类通过指针和引用来传递。6、拷贝构造函数在symb转载 2006-07-30 11:16:00 · 1171 阅读 · 0 评论 -
Symbian 函数或类与头文件和LIB库对照表
"AgnDateTime" ,"agmdate.h ", "agnmodel.lib ","AgnEntryStorer" ,"agmentry.h ", "agnmodel.lib ","AgnModel" ,"agmcomon.h ", "agnmodel.lib ","AknBorderId" ,"aknborders.h ", "","AknCommonDialogs" ,"akncomm转载 2006-08-04 14:56:00 · 5240 阅读 · 0 评论 -
基于控件的传统symbian OS架构之调试小结
基于控件的传统symbian OS架构之调试小结之前写过一个关于symbian常用程序架构的帖子,不过当时是在简单的看了看书本的条件下写的,仅仅是当时做的一个笔记而已,并没有多少自己的感想体会在里面。当然现在也不能就对传统的symbian os架构很了解了,因为毕竟没有做太多深入的研究试验,仅仅是根据自己的想法做了几个小程序而已。 从四个小程序上来分析: 一、在屏幕上显示两个L原创 2006-08-03 18:52:00 · 2422 阅读 · 2 评论 -
Avkon视图切换架构之调试小结
Avkon视图切换架构之调试小结----Symbian OS传统程序架构续在我看来,理解了传统的Symbian OS程序架构可以轻松的帮助我们理解Avkon视图切换架构,因为我们可以事先理解一些看起来比较抽象的概念,比如容器,窗口,复合控件等,了解一下最基本的Symbian程序框架。实际上,Avkon视图切换架构无非就是在传统的Symbian程序架构上做的一种扩展而已。最大的区别就是多了一原创 2006-08-05 15:29:00 · 3491 阅读 · 3 评论 -
Symbian错误码大全
一般错误KErrNone 0 KErrNotFound -1 不能找到指定对象 KErrGeneral -2 一般错误(不可预料) KErrCancel -3 操作被取消 KErrNoMemory -4 内存不足 KErrNotSupported -5 该请求操作不被支持 KErrArgument -6 错误请求 KErrTotalLossOfPrecision -7 精度全损转载 2006-08-16 14:12:00 · 9656 阅读 · 0 评论 -
symbian常用类的对比分析
T类:和symbian内置类型功能相当,声明后即可使用T类对象,一般创建在栈上,由系统自动删除。C类:均从基类CBase继承。有构造函数和析构函数,必须创建在堆上,通过delete或清除栈删除。 R类:资源类,实质上是一个句柄,不为用户所有,它属于服务器,没有构造函数和析构函数,一般创建在栈上。在client server 模式之下,R类相当对服务器对象在客户端的影射,也就是通过这个句柄,原创 2006-07-04 08:38:00 · 1739 阅读 · 1 评论 -
Symbian中操作ini文件
这两天在做东西时给这个操作ini文件的程序搞得郁闷死了,我的程序里要保存用户的数据,我就第一个就想到了ini配置文件,以为会跟windows平台一样的容易,直接拿系统提供的API就可以了事,找了半天,找不到,在网上查了一下,原来要自己解析的,郁闷了半天,看了示范,尝试去写着,老是出了N多的问题,后来终于写出来了,贴出来。。 SDK里有说到S60的程序默认不支持INI文件的操作,如果要让程序支转载 2006-07-03 17:50:00 · 1084 阅读 · 0 评论 -
Symbian OS 之活动对象
Symbian OS 之活动对象一、概述:Symbian OS是一个多任务的操作系统,那么为了实现多任务,同时使系统能够快速响应,高效的进行事件处理,并减轻应用程序员的工作负担(申请大多数耗时的操作(例如文件系统)由服务提供器来完成,服务提供器完成程序员提交的请求后,将会返回给程序员一个成功或失败的信号。), Symbian OS特意引入了活动对象的概念。服务提供器API具有函数的异步原创 2006-09-12 15:27:00 · 3908 阅读 · 2 评论 -
常用内存泄漏检测工具
常用内存泄漏检测工具一、检测已经分配的资源:内存资源使用监听器,只能用在模拟器上:按键组合 功能CTRL+ALT+SHIFT+A 显示已分配堆单元的数量CTRL+ALT+SHIFT+B 显示已分配的文件服务器资源的数量CTRL+ALT+SHIFT+C转载 2006-09-12 15:34:00 · 3480 阅读 · 0 评论 -
Symbian异常三步曲之二清除栈
Symbian异常三步曲之二清除栈一、为什么使用清除栈清除栈主要是用来处理在异常退出发生时那些或许可以称之为被遗弃或泄漏的内存。看下面的代码:void UnsafeFunctionL(){ CClanger* clanger = new(ELeave) CClanger(); clanger->InitializeL(); …….原创 2006-09-12 15:23:00 · 1822 阅读 · 0 评论 -
Symbian OS异常三步曲之一:异常退出(leave)
Symbian OS异常三步曲之一:异常退出(leave)Symbian的异常处理有别于标准C++的异常处理机制,主要原因是最初在设计Symbian的异常处理机制时,C++还没有引入异常处理,但是从Symbian OS 9.1开始,Symbian开始支持标准C++的try—catch异常处理机制,不过考虑到系统开销以及兼容性的因素,我们提倡使用Symbian特有的异常处理机制即异常退出。一原创 2006-09-12 15:13:00 · 1813 阅读 · 0 评论 -
使用日志类RFileLogger输出调试信息
使用日志类RFileLogger输出调试信息一、概述:类RFileLogger对应的头文件和库文件分别是flogger.h和flogger.lib。我习惯把opening代码放到我希望跟踪的class的ConstructL()函数里面,然后在析构函数里closing.在真正编码时,你最好检测一下Connect和CreateLog是否返回了KErrNone.二、使用:1、在类转载 2006-09-12 15:31:00 · 2057 阅读 · 1 评论 -
关于MIME的一些知识
MIME是一种技术规范,它原来是用于电子邮件的,现在也可以用于浏览器上,传送可以供浏览器识别的信息,关于MIME的知识并是十分难懂的,有一些基本的计算机概念就可以理解了,但如果要进一步使用,就必须注意内容。实际上,我们在上网的时候就已经接触到了MIME,只是浏览器和服务器在底层实现了。 MIME有时候被错误地理解为多媒体Internet邮件扩展(Multimedia Internet Mail E转载 2006-09-27 13:28:00 · 3143 阅读 · 0 评论 -
IMPORT_C and EXPORT_C
IMPORT_C 是一个宏,在 e32def.h 定义,意思是从 DLL 中导入函数。#define IMPORT_C __declspec(dllexport) 如果一个 DLL 函数要被导入到应用程序那么这个函数必须首先以 IMPORT_C 声明,告诉编译器,这个函数可以在 DLL 中找到。EXPORT_C 也是一个在 e32def.h 定义的宏,意思是从 DLL 中导出函数。#转载 2006-06-10 09:14:00 · 4535 阅读 · 3 评论 -
bld.inf、.mmp和.pkg文件浅析
对于每一个项目,都必须有一个工程引导文件bld.inf和一个项目定义文件.mmp。bld.inf文件可能引用一个或多个.mmp文件,每个.mmp文件对应一个将要生成的组件。一、工程引导文件bld.inf其实是一个脚本,它告诉build环境在做build之前需要准备或知道一些什么东西,最普通的写法是:PRJ_MMPFILESHelloWorld.mmp这是告诉build环境,你马原创 2006-06-24 14:20:00 · 2839 阅读 · 0 评论 -
制作SIS文件
以系统自带的Series60Ex目录下btpointtopoint工程为例来说明(C:/Symbian/7.0s/Series60_v21_CW/Series60Ex/btpointtopoint): 第一步:将命令行定位到group目录(C:/Symbian/7.0s/Series60_v21_CW/Series60Ex/btpointtopoint/group)运行 bldmake b原创 2006-06-28 17:27:00 · 2007 阅读 · 0 评论 -
由HelloWorld想到的
对于一个symbian GUI应用程序,必须实现四个类:(1)应用程序类(HelloWorldApp.cpp)该类用于定义应用程序的属性,还用于生成新的空白文档,以及传递UID信息。(2)文档类(HelloWorldDocument.cpp)该类表示应用程序的数据模式,负责保存和恢复应用程序的数据,以及创建应用程序的用户UI接口。(3)应用程序UI接口类(HelloWorldA原创 2006-06-29 13:23:00 · 1032 阅读 · 0 评论 -
Symbian程序框架研究
S60应用程序的运行依赖于大量的OS组件,例如屏幕绘图和应用程序数据持久性等,可以直接使用OS的窗口服务器或者文件服务器即可。应用程序框架由一套核心类组成,这些类是所有应用程序框架的基础。这些类组成了所有应用程序的架构,并且它们也封装了应用程序和所需OS服务器之间的相互作用。 第一层:CBase和CActive两个基类,其中CActive也是派生于CBase,而CActive又被第二层原创 2006-06-29 15:58:00 · 2433 阅读 · 0 评论 -
Symbian应用程序常用架构
所谓“应用程序架构”是指应用程序框架类的集合。 基于所需的UI设计,应用程序可以具有稍微不同的架构,但是每种架构都有一些公共部分,称为“核心应用程序类”一、先看一下基础部分,具体架构在第二部分介绍(1)核心应用程序类.所有的S60 UI应用程序都具有一些基本功能:l 提供一个用户界面,用于显示信息并允许用户进行交互l 响应各种用户启动的事件,比如原创 2006-06-30 14:35:00 · 1614 阅读 · 0 评论 -
蓝牙源代码
//判断蓝牙是否打开的函数TBool CMessageClient::GetBluetoothOn(){ // Create and initialise an RHostResolver RHostResolver hr; TInt res = false; TBool ret; RSocketServ socketServer; User::LeaveIfEr原创 2006-06-27 17:40:00 · 2099 阅读 · 0 评论 -
Symbian OS之客户-服务器架构
Symbian OS之客户-服务器架构活动对象中需要的所有异步服务,都是服务器通过客户-服务器架构来提供的。上图中Kernel Server是灰色的,表示内核服务器不能被用户直接访问使用,它是用来管理其他服务器的。服务器一般采取插件结构,这样更容易实现模块话,容易管理。客户-服务器架构允许:1、 可扩展性:可以添加新插件模块以服务于新对象类型。2、 有效性:原创 2006-08-18 16:53:00 · 3703 阅读 · 2 评论