- 博客(25)
- 收藏
- 关注
原创 C++中的纯虚函数
一、定义.纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”virtual void funtion1()=0二、引入原因:1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身
2006-06-30 16:01:00 2117
原创 Symbian应用程序常用架构
所谓“应用程序架构”是指应用程序框架类的集合。 基于所需的UI设计,应用程序可以具有稍微不同的架构,但是每种架构都有一些公共部分,称为“核心应用程序类”一、先看一下基础部分,具体架构在第二部分介绍(1)核心应用程序类.所有的S60 UI应用程序都具有一些基本功能:l 提供一个用户界面,用于显示信息并允许用户进行交互l 响应各种用户启动的事件,比如
2006-06-30 14:35:00 1610
原创 Symbian程序框架研究
S60应用程序的运行依赖于大量的OS组件,例如屏幕绘图和应用程序数据持久性等,可以直接使用OS的窗口服务器或者文件服务器即可。应用程序框架由一套核心类组成,这些类是所有应用程序框架的基础。这些类组成了所有应用程序的架构,并且它们也封装了应用程序和所需OS服务器之间的相互作用。 第一层:CBase和CActive两个基类,其中CActive也是派生于CBase,而CActive又被第二层
2006-06-29 15:58:00 2429
原创 由HelloWorld想到的
对于一个symbian GUI应用程序,必须实现四个类:(1)应用程序类(HelloWorldApp.cpp)该类用于定义应用程序的属性,还用于生成新的空白文档,以及传递UID信息。(2)文档类(HelloWorldDocument.cpp)该类表示应用程序的数据模式,负责保存和恢复应用程序的数据,以及创建应用程序的用户UI接口。(3)应用程序UI接口类(HelloWorldA
2006-06-29 13:23:00 1028
原创 制作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 2004
原创 蓝牙源代码
//判断蓝牙是否打开的函数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 2095
原创 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 2833
原创 关于image中的路径问题?
题目:Image类中有一个static createImage(String name)方法Image i=Image.createImage("C:/WTK22/apps/f5/src/ack.png");我用这个编译出错,然后改为Image i=Image.createImage("/ack.png");编译通过,但运行时,它就出现异常。(ack.png文件有存在)。求助要怎么去改?
2006-06-23 17:32:00 4310
原创 调试GMS项目的一点小总结
调试GMS项目的一点小总结:1、在手机上面运行程序,出项异常提示:null pointer无指针异常时,往往是因为在程序当中,我们访问了某个对象的成员变量或成员方法,而这个对象的值为null。2、出现destroyAppException异常时,可能是因为我们在主程序的destroyApp()方法中有不合法的操作存在,比如fileSelector.stop(),但是我们又没有构造fileSelec
2006-06-23 17:31:00 1928
转载 关于在静态方法中访问非静态内部类的问题
public class Outer{public String name = "Outer";public static void main(String argv[]){//Inner myinner = new Inner(); //直接用这句话创建会编译错误Outer myouter=new Outer(); //先创建外部类的对象 Outer.Inner myinner=myouter.
2006-06-23 17:29:00 2589
原创 Abstract方法不能用final,static修饰非abstract方法在abstract类中可以用fina
抽象类中的抽象方法不能是final,但是非抽象方法前加final可以编译通过因为abstract和final相互排斥,前者专用于继承,后者禁止继承抽象类中的抽象方法不能为static 非抽象方法可以为static包裹类Integer、 String 、Float、 Double等都是final类,不能被继承!Integer i=new Integer(“6”);如果字符串不是数字,会产生运行异常(
2006-06-23 17:26:00 8780
转载 关于java堆和栈的思考
1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动
2006-06-23 17:22:00 822
转载 堆和栈的区别
堆和栈的区别 一、预备知识?程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)? 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ? 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(st
2006-06-23 17:13:00 857
原创 Java解析网络数据流的三种特殊方法
UTF8转换成GB2312 当我们在基于HTTP协议的JSP或Servlet的应用中获取数据或发送请求时,JVM会把输送的数据编码成UTF8格式。如果我们直接从HTTP流中提取中文数据,提取的结果为“????”(可能更多问号),为转换成我们能够理解的中文字符,我们需要把UTF8转换成GB2312,借助ISO-8859-1标准编码能够轻易的实现,下面的代码实现了这一功能: byte [] b
2006-06-16 23:07:00 1209
转载 有关字符编码
0、big endian和little endianbig endian和little endian是CPU处理多字节数的不同方式。例如“汉”字的Unicode编码是6C49。那么写到文件里时,究竟是将6C写在前面,还是将49写在前面?如果将6C写在前面,就是big endian。还是将49写在前面,就是little endian。“endian”这个词出自《格列佛游记》。小人国的内战就源于吃鸡蛋
2006-06-16 22:59:00 921
转载 JVM(JAVA虚拟机介绍)
Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。本文首先简要介绍从Java文件的编译到最终执行的过程,随后对JVM规格描述作一说明。 一.Java源文件的编译、下载、解释和执行 Java应用程序的开发周期包括编译、下载、解释和执行几个部分。Java编译程序将Java源程序翻译
2006-06-16 22:55:00 1439
转载 MIDP设计模式之集结贴[JavaME]
1:架构性宣言: MIDP 2.0 中的工厂设计模式如何使用 MIDP 的 Generic Connection Frameworkhttp://www-128.ibm.com/developerworks/cn/java/wi-arch22/ 级别: 初级Mikko Kontio, 产品经理, Softera2006 年 3 月 13 日这个月将学习有关 MI
2006-06-16 22:53:00 1136
原创 J2ME的FileConnection的API中的几个名词解释
1、NAME:一个目录或文件的名字,不包含URL模式及全部路径。 例如:"/"注意必须要有斜线 ""有后缀名的文件 ""没有后缀名的文件2、PATH:一个目录或文件的路径。 例如:///3、URL:一个文件或目录的URL。 例如:file:///// /
2006-06-16 22:50:00 1526
原创 有关.jad文件
在网上提了一个问题被人当头棒喝,开始反思是不是自己在编程上太激进了呢?或许是的,因为总是感觉自己又很多基础的东西还不会。等做完了GMS项目,好好反思反思,或许真应该静下心来将J2ME好好从最基础的开始理顺理顺啊。。。。摘录J2ME开发网上zhengyun的提点和警戒:jad文件需要你自己去在eclipse上修改的,需要自己手动添加的。你在你的Eclipse上双击jad,就可以打开专门的
2006-06-16 22:47:00 2003 1
原创 生产者消费者模式的线程同步问题
源码如下:class Producer extends Thread { private CubbyHole cubbyhole; private int number; public Producer(CubbyHole c, int number) { cubbyhole = c; this.number = number; }
2006-06-16 22:45:00 1703
原创 调试蓝牙设备列表
1、清空一个Vector里面的所有元素,只需调用Vector类中的removeAllElements()方法即可。2、清空一个列表中的所有列表项,使用list.deleteAll(),改方法只是删除所有列表项,而列表中的标题,按钮等并不会删除。还有就是:删除列表上的“选择”按钮,假设Command c is the select command on List list则: li
2006-06-16 22:42:00 1229
转载 typedef和#define的用法与区别
一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性
2006-06-10 23:19:00 1489
转载 DLL的Export和Import
DLL的Export和ImportDLL的export是指将DLL中的函数和数据输出到其它程式中,以供其使用。DLL的import是指使用DLL的程式引入DLL中的函数和数据。 DLL的export DLL中包含有一个表,称为export table(以下简称ET),其中包含了DLL中可以被外部程式使用的所有函数和数据的名字。只有记录在ET中的函数和数据才可以被外部程式所使用(如果
2006-06-10 13:58:00 1989
转载 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 4531 3
原创 J2ME环境变量设置
JAVA_HOME=C:/j2sdk1.4.2PATH=%JAVA_HOME%/bin;C:/Nokia/Tools/Nokia_Developers_Suite_for_J2ME_3_0/bin;C:/Nokia/Update_Manager/bin;C:/S60/Series_60_MIDP_SDK_2_1_Chinese/bin;C:/Nokia_S40_DP20_SDK_6230i/b
2006-06-10 01:14:00 1875
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人