![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Symbian
文章平均质量分 65
demigod2009
这个作者很懒,什么都没留下…
展开
-
symbian 开发环境搭建:VS.net2003 + Carbide.vs + Symbian OS 8.0a
1、Series60 第一版 - Symbian OS 6.12、Series60 第二版 - Symbian OS 7.0s3、Series60 第二版 Pack 1 - Symbian OS 7.0s4、Series60 第二版 Pack 2 - Symbian OS 8.0a5、Series60 第二版 Pack 3转载 2010-03-25 22:33:00 · 600 阅读 · 0 评论 -
生成随机数
<br /><br />标准c语言里面有seed()和rand()用来生成种子和数值<br />在symbian平台下面,用什么方法呢?下面就是一个例子<br />TTime theTime( KAknExNoteInitializeTime );<br />theTime.UniversalTime();<br />TInt64 randSeed( theTime.Int64() ); // 采用时间初始化随机数种子<br />TInt number( Math::Rand( randSeed ) %转载 2010-07-04 18:05:00 · 400 阅读 · 0 评论 -
Symbian 数组
<br />阿飞转载 2010-07-15 10:33:00 · 394 阅读 · 0 评论 -
Symbian三种定时器的使用
<br />Symbian可用定时器种类: CTimer,RTimer,CPeriodic,CHearBeat <br />1.CPeriodic用法<br />因其简易性,最常被使用,需要实现回调函数。<br />class CMyTimer : public CBase<br />{<br />public:<br />CMyTimer();<br />void StartTimer();<br />void CancelTimer();<br />static TInt Loop(TAny* aPtr转载 2010-06-07 11:17:00 · 356 阅读 · 0 评论 -
获取手机型号
<br />TInt DeviceUID()<br />{<br /> TInt machineUid = 0;<br /> HAL::Get(HALData::EMachineUid, machineUid);<br /> return machineUid;<br />}<br />enum TMachineUIDs<br />{<br /> //S60 3rd Edition<br /> ENokia3250 = 0x200005F8,<br /> ENokia55转载 2010-06-08 21:14:00 · 525 阅读 · 0 评论 -
如何用自签名证书给.Sis文件签名
如何用自签名证书给.Sis文件签名 本文适用于S60第三版或更新版本。从S60第三版开始(基于Symbian OS 9),用户只能安装已签名的应用程序。 如果应用程序只需基本能力,那就能使用自签名证书。基本能力包括有: LocalServices, NetworkServices, ReadUserData, UserEnvironment 和 WriteUserData。 从S60 3rd FP2发行版(S60 3.2),Location能力也能授予自签名程序。 不需要任何能力的应用程序也能用自签名证书签转载 2010-06-19 14:12:00 · 1391 阅读 · 0 评论 -
震动API
<br />震动这个接口的发展历史很奇特,Symbian OS v8.x之前没有提供震动接口,之后开始使用CVibraControl类提供震动接口,而在Symbian OS v9.x之后在保留原有接口基础上又提供了新的CHWRMVibra类来提供震动接口。<br /> <br />// for S60 2nd FP2 and FP3<br />#include <vibractrl.h> // CVibraControl, VibraCtrl.lib <br /> <br />void DoVibrate转载 2010-06-20 17:14:00 · 655 阅读 · 0 评论 -
如何获取汉字的拼音
<br />一)本文的目的:<br />本文主要介绍如何调用系统库函数获取汉字的拼音。<br /> <br />二)具体实现:<br />主要用到类CPtiEngine及对应的库ptiengine.lib,头文件#include <ptiengine.h><br /> <br />1)打开字库<br />TBool CFindUtilChinese::OpenT9InterfaceL(TLanguage aLanguage)<br />{<br /> if (!iPtiEngine)<br />转载 2010-06-21 21:54:00 · 1002 阅读 · 0 评论 -
设置字体类型和字体大小
S60 3rd//首先查找机器支持的字体个数.TInt iNumTypefaces = iCoeEnv->ScreenDevice()->NumTypefaces();//然后就可以查找所有的字体for(TInt i = 0; i {TTypefaceSupport myTypefaceSupport;iCoeEnv->ScreenDevice()->TypefaceSupport(myTypefaceSupport,i);TBuf aTemp;aTemp.Copy(myTypefaceSupport.iT转载 2010-06-24 13:47:00 · 1170 阅读 · 0 评论 -
删除模拟器中的图标
<br />模拟器中的程序越来越多,如何删除?<br />有下方法:<br /> <br /><br />1.<br />用Carbide.C++ v1.3的话可以直接在工程目录的当前工程上右键单击,选clean project即可。<br />2.<br />在sdk 的 epoc/build目录下 搜索应用程序名字 吧文件全部删除就行了。<br />3.<br />for s60 2nd平台:<br />删除/epoc32/release/wins/udeb/z/system/apps/myapp的目录转载 2010-06-21 15:27:00 · 753 阅读 · 0 评论 -
背景灯光控制
1.三版中,背景灯开/关、闪烁可以通过CHWRMLight类控制:Void LightOnL(Tint aTarget, Tint aDuration, Tint aIntensity, TBool aFadeIn)aTarget: 目标设备,一般为EPrimaryDisplayaDruation: 持续时间,为0时表示一直亮,毫秒为单位aIntensity: 背景灯强度,一般为默认值aFadeIn: 是否慢慢变化void LightOffL(Tint aTarget, Tint aDuration, TB转载 2010-06-21 11:26:00 · 863 阅读 · 0 评论 -
Symbian小技巧
开始执行(不调试) 可以执行”生成“操作。开发环境和模拟器位置调整为不重叠,可以看到绘制过程。原创 2010-06-21 15:13:00 · 390 阅读 · 0 评论 -
如何获取IMEI号
例子CImeiReader用来说明如何在3rd Edition Symbian设备中读取IMEI (用来唯一标示每个手机的串号).但在模拟器上运行该程序时得到的 IMEI 是"0000000000000". 所需要的库:LIBRARY etel3rdParty.lib能力要求:CAPABILITY None注意: 有些混淆的信息说明读取IMEI需要"ReadDeviceData"能力.其实这个能力不是用来读取IMEI号的, 而是用来读取 IMSI时用到的. 1.1 IMEI_Getter.cpp转载 2010-06-21 17:31:00 · 4866 阅读 · 0 评论 -
如何获取IMSI号
<br />CImsiReader example illustrates how to read IMSI (SIM card's identity number, which has nearly nothing to do with the MSISDN that is the phone number used for calling) in 3rd Edition Symbian devices. Note that this code will most likely not work in t转载 2010-06-22 09:01:00 · 2910 阅读 · 0 评论 -
长按键的判断
<br />TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)<br />{<br /> ……<br /> //打印日志aType iRepeats:<br /> switch (aKeyEvent.iCode)<br /> {<br /> case EKeyUpArrow:<br /> {<br /> //按键处理 <br /> break;<br /> }<br /> ca原创 2010-06-22 13:13:00 · 1107 阅读 · 0 评论 -
Symbian常见错误归纳
<br />Symbian常见错误归纳<br /> <br /> KERN-EXEC 0 此错误通常出现在进程或线程使用已经销毁服务对象s句柄,如调用了某个对象的Close()方法而继续使用此对象句柄<br /> <br /> KERN-EXEC 3 此错误在好多情况下都会产生,最常见的情况通常是由于你使用了空指针,比如在对象没有创建的情况下使用其成员变量或方法<br /> <br /> USER 11 内存越界 通常情况下是由于你没有给你的数据分配足够的缓冲区造成的。<br转载 2011-03-20 14:43:00 · 498 阅读 · 0 评论 -
Carbide.c++ 快捷键
编辑相关Ctrl+ ↓ Ctrl+↑ 在编辑区上下滚动(滚动滑块)Ctrl+ ← Ctrl + → 向前向后移动一个单词Ctrl+ Shift + ↓ Ctrl+ Shift + ↑ 向上向下移动一个段落(可以方便的在函数方法中滚动)Ctrl+G 搜索工作区中的声明Ctrl+ Shift +G 搜索所有引用Ctrl+ Shift +S 保存所有文档Ctrl+F 查找替换转载 2012-08-07 13:35:17 · 962 阅读 · 0 评论 -
Symbian中音频API的使用
<br />使用CMdaAudioPlayerUtility<br />Location: MdaAudioSamplePlayer.h <br />Link against: mediaclientaudio.lib<br /> <br />播放音频数据,例如.wav,.midi,.mp3<br /> <br />创建并打开音频文件。<br />iAudioPlayer = CMdaAudioPlayerUtility::NewFilePlayerL(audioFile, *this);<br />aud转载 2010-06-25 17:19:00 · 476 阅读 · 0 评论 -
Symbian 的 Descriptor
TDesC本身只包含两个成员变量,type和length。type用于避免虚拟函数,length表示对象的长度。这样也就决定了symbian的descriptor是一个封闭的系统,即开发者无法再从系统提供的Descriptor class通过继承以扩展其功能。主要的成员函数有:TInt Length() const;const TUint8 *Ptr() const; 返回一个不可修改的指针。转载 2010-04-07 11:11:00 · 303 阅读 · 0 评论 -
Symbian绘图全过程
void CExampleControl::DrawBitmap( const TPoint& aPoint, const CFbsBitmap* aBitmap ) { // 获得系统图形场景及控制矩形区域 CWindowGc& gc = SystemGc(); // 建立绘制矩形区 TRect rect = TRect( aPoint, TSize( aBitmap.iWidth, aBitm转载 2010-04-07 11:09:00 · 381 阅读 · 0 评论 -
Symbian内存管理的二十二条军规
1、C类必须有析构函数,这是CBase的一个虚函数。 2、C类的构造函数和ConstructL()必须为protect或private类型的成员函数(这个有待讨论)3、在C class中必须有一个NewLC()函数,除非它是嵌套类。NewL()是可选的,并且总是根据NewLC()来实现。4、NewL()和NewLC()在c class中必须是static函数。5、C类通过指转载 2010-04-13 17:08:00 · 336 阅读 · 0 评论 -
Symbian内存泄露检查工具HookLogger安装及使用教程
在使用Symbian进行开发时经常会忘记释放我们曾经使用过的内存或指针,从而导致我们在模拟器中最后退出软件时会爆出提示,而检验遗漏的内存是程序员的天职所在,所以我们要想做好Symbian的开发,就必须熟悉如何查找内存,而Symbian SDK中提供了一个很好的工具HookLogger用来检验我们的内存操作。 下面所提到的是2008年5月1日版(0.423 rc版) 下载:原创 2010-04-04 17:01:00 · 397 阅读 · 0 评论 -
symbian中如何检测编辑框的当前输入法类型
当我们进行全屏程序开发的时候,对编辑框中当前的输入法要时行判断,以方便我们在界面上贴图表现,通过下面的三步可以完成这个功能: 1、在.h文件中加入相关的头文件class CAknIndicatorContainer; 2、在.h文件中加入用到的类定义struct S_uid: public TUid{ S_uid(int i) { iUi转载 2010-04-04 23:34:00 · 433 阅读 · 0 评论 -
Symbian中HBufC的使用
HBufC描述符是我们使用的比较多的描述符对象。这里是我在学习了一段时间的symbian之后的经验:HBufC是建立在堆内存上的对象,所以可以避开symbian中栈的大小的限制。 一、我们在想要得到HBufC的时候,可以使用2种方式:1、HBufC* buf = HBufC::NewL(128);2、HBufC* buf = TDesC.AllocL();第 一种方法使用HBufC提供转载 2010-04-05 23:18:00 · 340 阅读 · 0 评论 -
NewL() 和 NewLC()各适用于什么情况
具有二阶构造函数的类有两个创建对象的方法:NewLC()和NewL()对于NewLC(),当指针为自动变量时,应该使用该函数,创建对象后,可以调用其成员函数,使用完毕后,需要调用CleanupStack::PopAndDestroy()释放对象资源。对于NewL(),当指针为类成员变量时,应该使用该函数,这是因为此时没有必要将指针对象压入清理栈中,因为即使发生Leave,在类的析构函数中仍会对转载 2010-04-05 23:49:00 · 396 阅读 · 0 评论 -
Symbian添加一个控件的基本步骤
这是对于复杂视图模型来说的添加一个控件的基本步骤1、在container的头文件里添加控件的定义2、CmyContainer::ConstructL中创建控件,并把控件加到container中 如下:添加一个静态Label的方法 iLabel2 = new (ELeave) CEikLabel; iLabel2->SetContainerWindowL( *this ); iL转载 2010-04-05 23:54:00 · 346 阅读 · 0 评论 -
Symbian错误码大全
S60 3rd Edition 当程序崩溃时,大多数S60模拟器只显示一个简单的“程序关闭”对话框,并没有对这个错误有更多描述。 但我们可以在如下目录生成一个名为ErrRD的空白文件: Epoc32/winscw/c/resource 手机需要安装软件errrd(2008.2).sisx 一般错误KErrNone 0 KErrNotFound -1 不能转载 2010-04-06 19:18:00 · 1138 阅读 · 0 评论 -
不通过rss文件构建CEikEdwin
问题:我不想用rss来构建CEikEdwin,因为CEikEdwin会经常改变输入限制。所以考程序来设置比较好。但我一个只让输入英文的输入框构建如下:iPSEdwin = new (ELeave) CEikEdwin;iPSEdwin->SetContainerWindowL(*this);iPSEdwin->ConstructL(EAknEditorFlagDefault,16,16,1);iP转载 2010-04-04 23:31:00 · 376 阅读 · 0 评论 -
创建编辑框
S60中的编辑框控件有很多种(普通编辑框、全局文本、IP地址、日期等等),这里只介绍普通编辑框——CEikEdwin。 一、创建编辑框创建编辑框有两种方法:1. 通过资源创建1)资源定义RESOURCE EDWIN r_example_editor{ flags = EEikEdwinWidthInPixels; // 以像素为单位 width =转载 2010-04-05 11:02:00 · 623 阅读 · 0 评论 -
SymbianC++各种类型之间的转换
. TTime转TBuf型TBuf theTime;//存储转换后的时间 TTime tt; tt.HomeTime(); _LIT(KTimeFormat, "%Y%M%D%1-%2-%3 %H:%T:%S");//格式为:2006-03-04 12:12:12 tt.FormatL(theTime,KTimeFormat);2. TDateTime转TBuf型TTime curre转载 2010-04-06 13:55:00 · 351 阅读 · 0 评论 -
深入理解Symbian控件架构
Symbian中的控件都由CCoeControl派生而来,想定义自身的控件同样也需要继承CCoeControl。 这个CCoeControl很有意思,实现(或调用)它的不同方法就会产生不同的名称定义或者说是不同类型,至少在整个应用中开发者对它们的功能定义是如此:A视图 做为视图也就是说,它在继承CCoeControl之后在进行构造时必须要调有CreateWindowL()创转载 2010-04-06 21:22:00 · 318 阅读 · 0 评论 -
使用Carbide.vs与VS.NET2003构建Symbian开发平台-S60 平台
0 0 0使用Carbide.vs与VS.NET2003构建Symbian开发平台-S60 平台1.简介在过去的几年里从事Symbian OS/C++的开发,选择什么样的IDE开发环境是一件很让人郁闷的事。微软的Visual C++ 6.0 缺乏人性化的设计,而VS.NET却不能很好地支持Symbian Os/C++的开发,Borland转载 2010-04-04 17:16:00 · 429 阅读 · 0 评论 -
Symbian中TBuf初始化汉字为乱码的解决方法
在项目开发中,对于程序中添加提示信息,一般会采用下面的方法实现:_LIT(KMessage, "database created."); TBufCEikonEnv::Static()->InfoWinL(_L("search: "), str); 但对于汉字提示信息,采用这种方法则会出现乱码:_LIT(KMessage, "数据库创建成功"); TBuf str(KMessa转载 2010-04-05 23:24:00 · 412 阅读 · 0 评论 -
创建控件
创建简单控件1.创建一个派生于CCoeControl的类2.实现构造代码(通常在ContructL()函数中)3.重写虚函数Draw(),为控件提供绘制代码4.重写虚函数SizeChanged(),在控件尺寸更改时重新布置它class CSimpleControl{public: static CSimpleControl* NewL(const TRect& aRect, c转载 2010-04-05 23:56:00 · 364 阅读 · 0 评论 -
Symbian解决中文乱码问题
第一步,把 .loc 文件重新保存为 UTF-8 编码格式的文件,可以用EltraEdit,或者EditPlus直接用记事本打开,然后另存为 UTF-8 也可以第二步,在 .rss 文件的开头加上 CHARACTER_SET UTF8转载 2010-04-06 21:42:00 · 585 阅读 · 0 评论 -
CCleanupStackPop()和CCleanupStackPopAndDestroy()的区别
简单的说,PopAndDestroy(p)等价于Pop(p); delete p;关于清理栈的使用:class CleanupStack{public:IMPORT_C static void PushL(TAny* aPtr);IMPORT_C static void PushL(CBase* aPtr);IMPORT_C static void PushL(TCleanupItem a转载 2010-04-05 23:40:00 · 381 阅读 · 0 评论 -
选择文件对话框
经常在我们的项目中可能会用到选择文件对话框.当然更会用到选择指定格式的文件#include //定义一个属于自己的类,也就是文件过滤器//代码演示了选择图像文件的对话框class CMelodyFilter : public MAknFileFilter{ TBool Accept(const TDesC &aDriveAndPath, const T转载 2012-08-20 16:31:46 · 1259 阅读 · 0 评论