Symbian杂记

1) macro只作用于source,不作用于resource

2) 需要全局宏,在mmp hrh 包含公共头文件,source和resource包括loc或rls 都包含hrh

最好只使用

#define XXX_VER

#ifdef XXX_VER
#endif

其他条件宏,不一定所有sdk或IDE都识别

3) bld.inf 使用 #ifdef EKA2 区分三版 包含其他模块的bld.inf 比 包含mmp更清晰

4) mk文件中不能用空格,只能用TAB,和传统makefile格式一样

5)切忌用Windows2003编辑,2007编辑之后的编译能通过,但系统不识别

Open the rtf file in a text editor and delete the formattinginstruction that Word has created:

* {/*/wgrffmtfilter XXXX} in Word version 11.8134.8132, or
* {/*/generator Microsoft Word 10.0.6612;} in Word version 10.0.6612.

6) loc rls 中使用 CHARACTER_SET UTF8 carbide Text file encoding 使用UTF8

7) 二版的程序文件名和目录必须相同

8) pkg 使用 UTF-16

9) Carbide 个人习惯

General ->Appearance -> Colors and Fonts ->Text Font->Fixedsys 常规

General ->Editor->Text Editor-> Insert Space for Tab 4 /Show Print Margin 80 / Show line numbers

General ->WorkSpace->UTF-8

C/C++ -> Editor -> Syntax Coloring

偏好全在 org.eclipse.core.runtime/.settings

10) 安全判断版本 #if defined(EKA2) || defined(__SERIES60_3X__)

11)错误提示:KERN-EXEC 46权限不足报错12)3版启动 C:/private/101f875a/import/[2002FFFF].rsc UID与pkg UID一致

13)当前所在盘符

UI环境
CEikonEnv::Static()->EikAppUi()->Application()->AppFullName()[0]

EXE中
RProcess().FileName()[0]

MDL中
BaflUtils::FileExists


14)异步的方法必须要全部使用异步回调

15)不会访问冲突的扫描文件方法
void TOpenFileScan::NextL(CFileList*& aFileList);
TInt RFs::Entry(const TDesC& aName,TEntry& anEntry) const;
Entry::iSize
TInt RFs::ReadFileSection(const TDesC& aName,TInt aPos,TDes8& aDes,TInt aLength) const;

16)基于节约内存考虑,dll不允许全局变量

错误:dll has uninitialised data.

解决办法:
mmp中 添加 OPTION GCC -save-temps
在abld同级目录生成的 .ii .s文件中,搜索".bss"

你可能感兴趣的:(Symbian)