1.bmp也可以CImageDecoder::FileNewL()进行转换,转换后可能只有一张图,没有掩码图。 这在N73上会报错误。在N95,E71上通过。
1.在编译模拟器执行文件时,如果栈内分配的内存太大,会遇到error lnk2001: unresolved external symbol __
这个错误的解决办法就是 在mmp中加入
#if defined (WINS)
SOURCE chkstk.c
#endif
chkstk.c文件内容是:
#include "chkstk.h"
void _chkstk(){}
chkstk.h文件内容是:
#ifndef CHKSTK_H
#define CHKSTK_H
void _chkstk();
#endif
从新编译整个工程,问题解决!
2.在rss中定义的字符串是给在程序中访问这些字符串用的,在rss中要直接使用.rls中的名字.
3.当重新编译仍提示找不到.rsg时,删除Epoc32\data\z\system\apps下的对应的应用程序的目录,然后再编译.
4.在打包时遇到pkg文件中unknown line,置pkg最后一行为分号,解决,还不知道为什么.
5.在只装了Vc2003未装有vc6时,命令行编译symbian2版项目, 出现一些错误,把D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin,D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE 加入path.解决.
6.class CRImage;只在头文件中存在前向声明,在cpp中调用了基类的方法得到CRImage的对象,但在删除这个对象时,出现了空指针.需要在cpp中再包含CRImage的头文件来解决.
不要忽略警告!
7.必须要把C类写在前面
详细请参考《Symbian os C++ 高效编程》第8页,第8行,以及注释1。
8.在模拟器中,代码中可以找到E盘并在里面创建文件,并且可以再读到内容,但手动却找不到这个文件夹。
在/epoc32/data/epoc.ini中,添加 _EPOC_DRIVE_E /epoc32/winscw/e,然后创建epoc32/winscw/e目录,重启模拟器。
另外参考使用 PathInfo::MemoryCardRootPath(); 获取存储卡目录。
9.Tools > Preferences 提示 Cannot start ECMT Manager
默认识别Jre5.0, 而我机器上装的是比这个高的版本6.0。
解决方法:打开<installation_path>/Epoc32/tools/ecmt/config/config.properties,
可以看到其中一行是epdt.java.version.start=1.4.1,1.4.2,1.5,5.0
如果你装的是Jre6.0, 则将此行修改为:
epdt.java.version.start=1.4.1,1.4.2,1.5,5.0,1.6,6.0