登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: symbian 陷井日志     [回主站]     [分站链接]
标题
symbian 陷井日志
guest
浏览(0) + 2007-10-22 17:18:15 发表 编辑
给本帖添加超大文件下载链接

关键字:

symbian 陷井日志

L"中文";
这样的代码在 vc6 加模拟器上是可以的,但在真机上必须用 _L("中文");
否则 make_armi.bat 时会过不去.

guest
2007-10-22 17:33:56 发表 编辑

_L("") 在真机上中文也是不出来的.似乎应该是 utf8 才行.
guest
2007-10-24 13:14:36 发表 编辑

Carbide.c++ 似乎是其的一个开发环境.感觉在 VC6 下调试看不了 TBuf<6> 这样里面的值不是很好.
guest
2007-10-25 15:36:12 发表 编辑

symbian 用到 CEikEdwin ,看了一下需要 eikcoctl.lib .将它加入到 vc 工程中却死活不行.找了一下资料,原来是要在 *.mmp 文件中写上这样一句.
LIBRARY eikcoctl.lib
然后用一个批处理文件来重新生成 vc6 的项目文件.

我直接在同事的文件上改了:
make_dsp.bat
内容为

bldmake bldfiles
makmake T1 vc6

其中 T1 是项目的名字,其他的是 symbian 自己的生成的东西.执行后就可以有一个新的 dwp/dsw 组合生成在目录中.不过这时的调试选项是没有了,得再加上
C:\Symbian\7.0s\Series60_v21_C\Epoc32\release\wins\udeb\epoc.exe
在调试时会启动模拟器,然后在里面找到 T1 (或者是你的项目名)然后点击 OK 按钮就可以调试了.

不过有时这样仍然会有问题,就需要再执行一个批处理,我同样用的是同事的:
make_wins.bat
其内容为:
bldmake bldfiles
abld build wins udeb

似乎里面的内容是不需要改动的,直接就可以.有时这样可以直接编译成功,有时不行,不过到vc6中肯定是可以了的.

如果是编译到真机,则是:
make_armi.bat
内容为:
bldmake bldfiles
abld build armi urel

最后还要打包为 sis 的格式:
make_s60.bat
内容为:
makesis Stock.S60.pkg

这个 pkg 的内容为:
; Stock.s60.pkg
;
;Language - standard language definitions
&EN
;
; standard SIS file header
#{"Stock"},(0x1000ABCD),1,0,0
;
;Supports Series 60 v2.0
(0x101F7960), 0, 0, 0, {"Series60ProductID"}
;
;
;
"C:\Symbian\7.0s\Series60_v21_C\EPOC32\release\wins\udeb\z\system\apps\stock\Simple176_208.mbm" -"!:\system\apps\stock\Simple176_208.mbm"
;
;
;
; app(FR,RI means auto run after install, must be placed under the pkg file)
"C:\Symbian\7.0s\Series60_v21_C\EPOC32\release\wins\udeb\z\system\apps\stock\stock.rsc" -"!:\system\apps\stock\stock.rsc"
"C:\Symbian\7.0s\Series60_v21_C\EPOC32\release\wins\udeb\z\system\apps\stock\stock_caption.rsc" -"!:\system\apps\stock\stock_caption.rsc"
"C:\Symbian\7.0s\Series60_v21_C\EPOC32\release\wins\udeb\z\system\apps\stock\stock.aif" -"!:\system\apps\stock\stock.aif"
"C:\Symbian\7.0s\Series60_v21_C\EPOC32\release\armi\urel\stock.app" -"!:\system\apps\stock\stock.app",FR,RI





guest
2007-10-25 15:37:36 发表 编辑

Symbian函数或类与头文件和LIB库对照表 3


"CEikEdwin","eikedwin.h ","eikcoctl.lib ",
...

guest
2007-10-25 15:39:23 发表 编辑

附件[暂不开放下载]
[完整版本]
Symbian函数或类与头文件和LIB库对照表

太长了,改为附件吧. [clq]

guest
2007-10-25 20:29:52 发表 编辑

#pragma pack(1) 在手机上无效吗?

--------------------------------------------------
http://discussion.forum.nokia.com/forum/showthread.php?t=75596
--------------------------------------------------

The GCC compiler ignores "#pragma pack" statement when compiling for ARM platform, so you should use "__attribute__((packed, aligned))", like this:

#if defined(__WINS__)
#define PACKED
#else
#define PACKED __attribute__((packed, aligned(1)))
#endif

#pragma pack(1)

typedef struct {
char sig[104];
unsigned char verl,key;
int nFile, dFile, crc;
}PACKED avl1;

typedef struct {
char name[22];
int length, crc32;
}PACKED avd1;

#pragma pack(4)
--------------------------------------------------

关于字节对其的问题?!
相信大家都遇到过?!
我首先定义了一个数据结构类型:
#pragma pack(1)
typedef struct {
char sig[104];
unsigned char verl,key;
int nFile, dFile, crc;
}avl1;

typedef struct {
char name[22];
int length, crc32;
}avd1;
#pragma pack()
按一字节对齐;
在模拟器上所有的字节都很好!但是在真机上,取出的Key是对的,但是Nfile是错的,错了2个字节,就是说多出了2个字节,导致错误!?

怎么回事呢?如何解决呢?!

谢谢!

#2
2006-03-04, 04:04
hoolee
Super Contributor Join Date: Mar 2005
Posts: 2,437


Re: 关于字节对其的问题?!
arm平台alignment方式是不一样的,详细请参考SDK中资料
» Symbian OS SDK v8.1a » Tools And Utilities » Build tools guide » The native build targets
__________________
I'd just be the catcher in the rye
hoolee

#3
2006-03-04, 04:10
chenziteng
Forum Nokia Champion Join Date: May 2004
Posts: 744

Re: 关于字节对其的问题?!
Quote:Originally Posted by hoolee
arm平台alignment方式是不一样的,详细请参考SDK中资料
» Symbian OS SDK v8.1a » Tools And Utilities » Build tools guide » The native build targets

What you said is totally right, but has nothing to do with jintian2005's problem.

#4
2006-03-04, 04:11
chenziteng
Forum Nokia Champion Join Date: May 2004
Posts: 744

Re: 关于字节对其的问题?!
The GCC compiler ignores "#pragma pack" statement when compiling for ARM platform, so you should use "__attribute__((packed, aligned))", like this:

#if defined(__WINS__)
#define PACKED
#else
#define PACKED __attribute__((packed, aligned(1)))
#endif

#pragma pack(1)

typedef struct {
char sig[104];
unsigned char verl,key;
int nFile, dFile, crc;
}PACKED avl1;

typedef struct {
char name[22];
int length, crc32;
}PACKED avd1;

#pragma pack(4)

#5
2006-03-04, 04:24
hoolee
Super Contributor Join Date: Mar 2005
Posts: 2,437


Re: 关于字节对其的问题?!
thanks for your right reply^_^it's helpful for me
__________________
I'd just be the catcher in the rye
hoolee

#6
2007-10-19, 02:01
frank.sunny@163.com
Registered User Join Date: Sep 2007
Posts: 14

Re: 关于字节对其的问题?!
楼上关于结构体的问题解决了,但是描述符我发现也有类似问题,描述如下
我在模拟器和手机上(N72)分别做了实验,定义三个描述符TBuf8<41> iAccount;TBuf8<50> iName;TBuf8<40> iPassWord;用sizeof取得的长度让我感觉很奇怪,分别是52,60,48,显然一个多了3个字节,一个多了2个字节,我不知道该怎么解释它
模拟器和手机上的结果是一致的。而且每个描述符的MaxLength都是设定的值,分别是41,50和40

#7
2007-10-19, 02:07
liuxg
Forum Nokia Expert Join Date: Mar 2003
Posts: 1,934

Re: 关于字节对其的问题?!
Do not use "sizeof" to get its length. Use "Length" method to get the real length of the descriptor, and use "MaxLength" to get its maximum length of descriptor.
__________________
Liuxg
Forum Nokia

DO THINGS RIGHT, AND DO THINGS RIGHT ALWAYS IN THE FIRST TIME
http://discussion.forum.nokia.com/forum/showthread.php?t=109161

#8
2007-10-19, 03:56
frank.sunny@163.com
Registered User Join Date: Sep 2007
Posts: 14

Re: 关于字节对其的问题?!
Quote:Originally Posted by liuxg
Do not use "sizeof" to get its length. Use "Length" method to get the real length of the descriptor, and use "MaxLength" to get its maximum length of descriptor.


知道了,这个也比较有趣,根据我对内存的调试,它的确是占用了那么多的空间
为此我可不可以这样问,如果要取得描述符的长度就用描述符自身的函数,如果要知道其内存空间用sizeof得到的也是对的,对吧?

#9
2007-10-19, 16:26
chenziteng
Forum Nokia Champion Join Date: May 2004
Posts: 744

Re: 关于字节对其的问题?!
Quote:Originally Posted by frank.sunny@163.com
知道了,这个也比较有趣,根据我对内存的调试,它的确是占用了那么多的空间
为此我可不可以这样问,如果要取得描述符的长度就用描述符自身的函数,如果要知道其内存空间用sizeof得到的也是对的,对吧?

Hi,

This may help explain why the size of the descriptor is longer than expected:

"Tip 9: Beware of calling MaxLength() on the TPtr returned from HBufC:es()"
http://descriptor-tips.blogspot.com/

Regards

Ziteng Chen

#10
2007-10-22, 07:28
frank.sunny@163.com
Registered User Join Date: Sep 2007
Posts: 14

Re: 关于字节对其的问题?!
Quote:Originally Posted by chenziteng
Hi,

This may help explain why the size of the descriptor is longer than expected:

"Tip 9: Beware of calling MaxLength() on the TPtr returned from HBufC:es()"
http://descriptor-tips.blogspot.com/

Regards

Ziteng Chen

谢谢,我知道了,描述符再内存分配时也是采用以4边界对齐的。也就是说对于TBuf8<9> 和TBuf8<12>在内存中占用的空间是一样的,申请动态内容时消耗的堆内存也是一致的。

你推荐的网址很有用,非常感谢


clq
2007-10-27 21:35:35 发表 编辑

不能用全局变量! 真是 SB 系统呀 -- s = sy , b= bian 这真是个好恶心的特性.更XX的是,它的模拟器上是可以的! 只有编译为 armi 格式时才会出现错误.


clq
2007-10-27 21:36:11 发表 编辑

我们项目的安装编译注意事项

安装
jdk,perl,s60 sdk 安装就行,不用象网上教程所说的那样改系统变量.
make_wins.bat 这个不执行编译不了.
MakeSkn.bat 这个不执行调试不了.

make_dsp.bat 修改了 mmp 文件后要执行这个,否则编译不了.
添加了 cpp 文件,或者是添加了引用的库都改动 mmp 文件.在 vc6 工程中设置是没有用的 -- 这点特

别重要.


要生成新项目须要有

C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template
下的 EpocAppWiz.awx 和 EPOCAPPWIZ.HLP 从 sdk 中复制过去.

clq
2007-10-27 21:45:01 发表 编辑

出货时是要编译为 armi 格式的,经常出现 vc6 中,它不行的情况,所以久不久还是在真机上多试试几次.

另外它的 unicode 函数在模拟器是没效果的.(我的是2.1,听说2.2的可以)

guest
2007-10-30 14:43:50 发表 编辑

图标修改记

要求修改一下在symbian中显示的图标,没想到是一个极度困难的问题.过程就不说了.结果如下:

1.不要修改原有图片的大小;
2.将 c:\symbian 下的项目相关文件通通删除.比如我们的就是搜索 stock 后全部删除.
3.执行 make_wins.bat 会自动生成图标所需的 aif 文件.

改显示标题还好点,不过其实现更牛x:

修改 *.rss 文件,本来这个文件就是 uft8 格式的了,但是还是要你写成16进制的格式.例如:

#define str_app_caption_string <0x56fd><0x4fe1><0x8d22><0x795e><0x901a>

而其他的文本都可以定义成这样:
#define str_socket_state_connecting "连接服务器..."

--------------------------------------------------
make_wins.bat 内容为:

bldmake bldfiles
abld build wins udeb
--------------------------------------------------

其实正常情况下只要删除类似于
C:\Symbian\7.0s\Series60_v21_C\Epoc32\release\wins\udeb\z\system\apps\STOCK\STOCK.AIF
这样的文件名再改图标,再执行 make_wins.bat 就可以了.上面那个是极端情况.


总数:37 页次:1/4 首页 下一页  >>  尾页  
总数:37 页次:1/4 首页 下一页  >>  尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1