clq
2007-11-16 19:43:08 发表
编辑
如何发现全局变量
from: http://highhigh.cnblogs.com/
1,release by armi这样你会在C:\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\release\armi\urel下找到yourapp.app.map打开查找.data
.data 0x1000d000 0x0
0x1000d000 __data_start__=.
*(.data)
*(.data2)
*(SORT(.data$*))
0x1000d000 __data_end__=.
*(.data_cygwin_nocopy)
__data_start__=.与__data_end__=.出现的任何值都是错误的使用了全局变量
查找.bss
.bss 0x1000d000 0x0
0x1000d000 __bss_start__=.
*(.bss)
*(COMMON)
0x1000d000 __bss_end__=.
同理在这中间出现都是没有初始化的变量(理论是这样的,很奇怪我的问题确是因为CONST 引起的)
2,尤其是在移植C的代码到symbian CPP中时要注意 多个全局变量产生错误的问题在EXE中不会出现
guest
2007-11-28 14:42:46 发表
编辑
真机上的通讯和模拟器还是很不同,特别是网关会有很多限制.
"初始化命令"那里很重要,我拨了半天没上去就是因为这个原因.俺用的 N70.
想买个 S60 的手机来玩,不过没手写,不爽,罢了.
--------------------------------------------------
电脑通过S60手机WAP包月上网详解
新购进一诺基亚N73,掌上书院、DivPlayer、GGTV、QQ2007....等全部玩了个遍,现又通过手机让电脑上网成功,以后我的笔记本就可以随时随地上网了,呵呵,虽然借鉴了不少网上的相关资料,但是感觉都不是很全面,也不尽正确,在此整理一下,为大家共享出来:
一、手机端:
就是让手机能正常的上包月的CMWAP就可以了,
功能表-->工具-->设置-->连接设置->接入点:
将所有的接入点名称都改为: cmwap
并且在每一个的接入点内, 进入"选项"-->"高级设置" :
将"代理服务器地址" 设为: 10.0.0.172 将"代理端口号码" 设为 : 80
无论是SmartPhone(原理一样,设置稍有出入) 还是Symbian S60 , 我按以上的设置上网1年多了, GGTV与QQ一直玩,至今GPRS费用还是0, 我是WAP包月,呵呵..
二、电脑端:
首先保证你的PC套件运行正常,可以用数据线、蓝牙、红外3种方式成功连接电脑,在手机与电脑连接成功后,以蓝牙为例:在电脑的硬件管理器里就会出现一个新的调制解调器:Bluetooth DUN Modem,下面是关键的设置:
控制面板——电话和调制解调器选项 —— 调制解调器——Bluetooth DUN Modem(蓝牙MODEM)—属性—高级—在额 外的初始化命令下框输入:AT+CGDCONT=1,"IP","cmwap"
然后: 开始-->连接到-->显示所有连接-->双击Bluetooth DUN Modem,填入拨号号码: *99***1#
如果是红外连接:调制解调器为:Standard Modem over IR link (OTA), 设置是一样的。
然后:打开IE,在”Internet 选项“中选择”连接“,选中列表中的”Bluetooth DUN Connection“,设置,在弹出的界面中,填入代理服务器地址”10.0.0.172“和端口”80“。
最后,双击电脑右下角的蓝牙图标,双击BlueSoleil软件窗口中的手机,取得服务,再单击已取得的服务(有黄色框)的最左边的服务:蓝牙拨号网络服务,这时手机上会提示电脑请求与手机连接,在手机端确认后,电脑将弹出拨号窗口(BlueSoleil软件窗口中蓝牙拨号网络服务的黄色框也变为了绿色),拨号的号码为:*99***1# ,用户名密码为空, 先拨号再上网就OK了。
guest
2007-11-28 22:19:56 发表
编辑
好奇怪,不大 vc6 里 rebuild 一番的话,直接编译 arm 格式也会有问题.
我们碰到的是主界面出不来,不知还会引起什么其他的问题 :(
guest
要用 memset() 函数,结果
#include //clq add
#include //clq add
后报错...
Compiling...
T1appui.cpp
\Symbian\7.0s\Series60_v21_C\EPOC32\INCLUDE\libc\string.h(27) : fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory
Error executing cl.exe.
原来是头文件的路径要加 \epoc32\include\libc 如:
SYSTEMINCLUDE . \epoc32\include ..\system \epoc32\include\libc \epoc32\include\ecom \epoc32\include\http
guest
from http://www.china928.cn/t,20061229,12,5264096.html
uiq3.0sdk最终版 模拟器如何才能显示中文。
楼主makegame(makegame)2006-12-29 12:38:25 在 移动平台 / Symbian 提问
如题,谢谢各位高手。 问题点数:100、回复次数:12Top
1 楼chenziteng(陈子腾)回复于 2006-12-29 22:48:43 得分 55
.
按道理手机制造商应该为UIQ SDK提供中文扩展包,比如索爱曾经为UIQ2 SDK提供过"Chinese extension",但是目前还没有UIQ3 SDK专用的中文扩展包。
在UIQ的论坛上有人声称用Windows的TTF文件替换SDK中的TTF文件即可在仿真器(Emulator)上显示中文。
“Chinese Characters donesn't show on emulator ”
http://developer.uiq.com/forum/click.jspa?searchID=29219&messageID=1328Top
2 楼mickeyfirst(黑梦)回复于 2006-12-30 09:15:13 得分 45
UIQ中文包一般要晚很久才提供的,至少要比第一款手机上市要晚3,4个月。
我记得中文sdk已经发布了,你到uiq或者Se的网站找一下。Top
3 楼makegame(makegame)回复于 2006-12-30 10:25:23 得分 0
chenziteng(陈子腾)
的招我试过,没成功!
mickeyfirst(黑梦)
提到的sdk能帮忙找找不,我还没有发现啊!Top
4 楼mickeyfirst(黑梦)回复于 2006-12-30 10:35:21 得分 0
我不知道你是想输入中文还是仅仅是想在你的程序里中文不显示为乱码
如果是后者你可以试一下
http://developer.uiq.com/devtools_uiqsdk.html
提供的sdk,里面包好了中文字库
PS:
二楼提供的方法,我觉得在理论上就解释不过去Top
5 楼chenziteng(陈子腾)回复于 2006-12-30 21:14:17 得分 0
To mickeyfirst(黑梦):
“我记得中文sdk已经发布了,你到uiq或者Se的网站找一下。”
现在根本没有中文版的UIQ3 SDK
“我不知道你是想输入中文还是仅仅是想在你的程序里中文不显示为乱码
如果是后者你可以试一下
http://developer.uiq.com/devtools_uiqsdk.html
提供的sdk...”
那个页面上是UIQ提供的UIQ3 Final SDK,里面没有中文字体文件,所以在仿真器上无法显示中文。
“二楼提供的方法,我觉得在理论上就解释不过去”
我已经在UIQ3 Final SDK上验证了替换字体文件的方法,很成功。
负责任的程序员不会想当然,而是通过实践说明问题。
To 楼主:
我的验证步骤如下所示:
1. 备份SDK安装目录下的"\epoc32\release\winscw\udeb\Z\Resource\Fonts"目录及该目录下所有文件,随后删除该目录下所有文件
2. 拷贝Windows中的“仿宋体”字体文件到1.中的字体目录中。我用的是Windows 2000 Professional Edition SP4,因此拷贝了"C:\WINNT\Fonts\simfang.ttf"
3. 修改SDK安装目录下的"\Examples\UIQ\QHelloWorld"示例程序,
// HelloWorldView.cpp
...
#include // for CEikLabel
...
void CHelloWorldView::ViewConstructL()
{
// Loads information about the UI configurations this view supports
// together with definition of each view.
ViewConstructFromResourceL(R_HELLOWORLD_UI_CONFIGURATIONS);
CEikLabel* label = LocateControlByUniqueHandle(EHelloWorldLabelCtrl);
_LIT(KTest, "test\u6211"); // 6211是“我”字的16进制Unicode值
label->SetTextL(KTest);
}
...
4. Build修改后的示例程序
bldmake bldfiles
abld build winscw udeb
5. 启动仿真器后打开HelloWorld程序即可看到屏幕中间的Lable控件上显示着字符串"test我"。
如果楼主替换了字体文件后仍无法在自己的程序中显示中文,则有可能是你的程序有问题,具体问题具体分析吧。
Top
6 楼toann()回复于 2006-12-30 22:49:01 得分 0
Mark,收入资料库^_^Top
7 楼mickeyfirst(黑梦)回复于 2006-12-31 10:12:23 得分 0
你怎么知道我是想当然?没有测试?不要一副老大的样子嘛
UIQ是不发布中文的sdk,这个我承认,是我说错了。但是现在UIQ的手机有几家在做?所以UIQ要follow索爱
索爱每发布一款手机都会deliver一个中文的补丁,比如UIQ3的已经发布了m600的中文补丁,在这个补丁中就包含了中文字库。
我把打了这个补丁的sdk就认为成了中文sdk。
我个人认为这种发布方式仅仅是没有打包在一起形成一个实际上的中文SDK而已。
PS:中文字转化成unicode码可以在word中用atl+x,可以提高效率。
真的要把所有的中文字符串都转换为unicode码才能解决这个问题?
不是吧?
如果感兴趣的话,关于UIQ中文问题可以继续讨论Top
8 楼chenziteng(陈子腾)回复于 2006-12-31 15:54:54 得分 0
To mickeyfirst(黑梦):
“你怎么知道我是想当然?没有测试?不要一副老大的样子嘛”
以你这种“子非鱼”式的诡辩逻辑,我可以说:“你怎么知道我不知道你是想当然?你怎么知道我不知道你没有测试?”
以理服人,理是老大。
“索爱每发布一款手机都会deliver一个中文的补丁,比如UIQ3的已经发布了m600的中文补丁,在这个补丁中就包含了中文字库。
我把打了这个补丁的sdk就认为成了中文sdk。”
如果说之前你只是想当然,现在你就是蓄意以谎圆谎了。
经试安装后可以确认,目前索爱发布的M600扩展包和P990的扩展包中均无中文字体。
询问索爱官方后得到的答复:迄今为止,索爱没有发布过针对UIQ3 SDK的中文扩展包。
“真的要把所有的中文字符串都转换为unicode码才能解决这个问题?不是吧?”
解决楼主问题的本质方法是替换字体文件,我在测试程序里写死Unicode码只是为了迅速地验证一下替换的字体是否有效。
如果想做多语言版本的程序自然要用本地化资源文件。
“UIQ是不发布中文的sdk,这个我承认,是我说错了。”
错了就承认,这才是诚实的程序员。
Top
9 楼zhaojiangwei102(逍遥剑)回复于 2006-12-31 16:14:29 得分 0
子腾兄的方法我已试过,呵呵,显示中文很好的!
Thanks
BR/imcm
Top
10 楼mickeyfirst(黑梦)回复于 2007-01-04 08:50:24 得分 0
你为什么不去问问做那个SDK的人?
对于你来说找那个人应该很简单Top
11 楼makegame(makegame)回复于 2007-01-04 10:34:37 得分 0
放假几天,都在加班。没来看帖子,实在辜负几位热心的兄弟。
多谢各位,散分。Top
12 楼hanxiao_0210(hanxiao)回复于 2007-01-16 12:57:01 得分 0
markTop
相关问题
guest
如何动态生成一个编辑框
书上的网上的例子大多是通过对话框资源生成,一直想在向导生成的容器中生成动态生成一个 edit . 好难 :(
方法如下:
void CT1AppView::ConstructL(const TRect& aRect)
{
CreateWindowL();
SetRect(aRect);
////////////////
_LIT(KStatus,"example");
CEikEdwin * iEdwin = new (ELeave) CEikEdwin;
iEdwin->ConstructL(CEikEdwin::EOwnsWindow,10,100,5);
iEdwin->SetContainerWindowL(*this);
iEdwin->SetBorder(TGulBorder::ESingleBlack);
iEdwin->SetExtent( TPoint( 10, 25 ), TSize( 160, 64 ));
iEdwin->SetTextL(&KStatus);
iEdwin->SetFocus(ETrue);
iEdwin->ActivateL();
/////////
ActivateL();
}
方法来自 http://discussion.forum.nokia.com/forum/showthread.php?t=15175
--------------------------------------------------
Vani Offline
Registered User Posts: 19
Join Date: May 2003
2003-06-12, 09:30
To change the color of the text in edwin control the SetCharFormatLayer() method of CEikEdwin should be called.
Before which the TCharFormat and TCharFormatMask should be
intialized and passed into the CCharFormatLayer.
The following code could be useful at your end :
TCharFormat charFormat;
TCharFormatMask charFormatMask;
TFontPresentation iFontPresentation;
charFormat.iFontPresentation.iTextColor=KRgbBlack;
charFormatMask.SetAttrib(EAttColor);
CCharFormatLayer* FormatLayer=CEikonEnv::NewDefaultCharFormatLayerL();
FormatLayer->Sense(charFormat, charFormatMask);
FormatLayer->SetL(charFormat,charFormatMask);
_LIT(KStatus,"example";
iEdwin = new (ELeave) CEikEdwin;
iEdwin->ConstructL(CEikEdwin::EOwnsWindow,10,100,5);
iEdwin->SetContainerWindowL(*this);
iEdwin->SetBorder(TGulBorder::ESingleBlack);
iEdwin->SetExtent( TPoint( 10, 25 ), TSize( 160, 64 ));
iEdwin->SetTextL(&KStatus);
iEdwin->SetFocus(ETrue);
iEdwin->ActivateL();
iEdwin->SetCharFormatLayer(FormatLayer);
Vani
guest
不过这样不能输入,也不响应键盘 :( 原因暂时未知.
guest
http://developer.sonyericsson.com/thread.jspa?&threadID=36109&start=0
guest
要重写一个函数后才能响应键盘. symbian 很多地方都要进行这种重写.
//据说有这个才响应键盘
TKeyResponse CT1AppView::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
{
return iEdwin->OfferKeyEventL(aKeyEvent,aType);//clq add
}
另外 iEdwin 的头文件一定要注意,有时 include 别的头文件后也能编译,但真正能工作的是下面这个:
#include
guest
aif 文件必须是正确的,否则程序启动不了,即便是在模拟器中.
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.