Symbian 3rd 知识点
2010-06-04 14:04:00 来源:WEB开发网知识点(5)
(73)应用程序总是中断的分析
检查内存泄漏的方法:
__UHEAP_MARK;
你得代码中需要检查的部分
__UHEAP_MARKEND;
无原因退出主要有以下几个原因:
1、没有处理Leave异常,也就是有没有被Trap的Leave函数。所有的Leave函数必须在程序的某个地方被TRAP, TRAPD, 或TRAP_IGNORE涵盖到。这是最初要的原因
2、访问了非法的内存区域
3、修改了非法的内存区域导致系统服务出错。这个问题可以在Symbian 9以后实现Platform Security之后解决
4、没有找到需要的库。缺少所需要的DLL文件等等
5、错误的资源文件,RSC文件的版本和程序中调用所需的资源文件不一致
6、调用了系统不支持的功能。例如类似调用Camera功能的时候要考虑到不同手机产品相机的差别,需要安装相应的FP (Feature Pack)
===================================================================================================================
(74)如何运行app和exe程序
Symbian有2种类型的本地程序:
APP是有GUI的程序,因此能够被终端用户使用
EXE通常是服务端或命令行程序,通常隐蔽的运行。没有GUI,不能直接从主菜单运行
运行指南
如果你是一个终端用户想运行APP:它会在你的电话菜单中列出如果它已经安装
当一个EXE程序在主菜单不可见时不能直接运行EXE程序。试着从INBOX运行它(如果你通过红外或蓝牙下载过它,它可能存储在INBOX里)会导致一个安全错误。首先,你需要安装一个文件管理器(比如FileMan或FExplorer),浏览它存储的位置(在我的3650上INBOX的目录在 E: systemMailxxx),然后运行它。
运行程序
当你知道运行APP或EXE程序使用哪个API后是非常简单的事。
运行EXE程序:
#include
...
_LIT(KMyAppName, "c:\system\Apps\MyApp\MyApp.exe");
EikDll::StartExeL(KMyAppName);
下面的代码运行APP比较复杂但允许执行特定的文档
#include
#include
...
_LIT(KMyAppName, "c:\system\Apps\MyApp\MyApp.app");
_LIT(KMyDocName, "c:\Documents\MyApp.dat");
更多精彩
赞助商链接