symbian手机平台上的putty
发现一个 Symbian 平台上的一个 ssh 客户端 putty for symbian。
在PC上用习惯了小巧的 putty, 在 sourceforge.net 上闲逛,发现也有一个 putty for symbian OS ,这样以后在Nokia 智能手机上也能用 putty 来远程连接服务器做管理了。
下载服务器上同时公布有源码下载,有兴趣的话可以下载研究一下。
Popularity: 5% [?]
Related
给Symbian添加子菜单方法
测试用Symbian程序的菜单越来越多,想通过子菜单方式将菜单的功能分组。
研究了一下,发现在资源文件中可以做到,要使用MENU_ITEM的cascade属性。
- 首先
修改原先的一个MENU_ITEM,设置其cascade值为一个新的MENU_PANE的id(红色字标出)
MENU_ITEM { command = ETest_S60CmdGroup1; txt = qtn_hewb_cmdgroup1; cascade = r_test_s60_group1_menu; },
对子菜单的MENU_PANE设置,注意红色字和前面的对应关系
RESOURCE MENU_PANE r_test_s60_group1_menu{ items = { // added the new Options menu command here MENU_ITEM { command = ETest_S60CmdGroupItem1; txt = qtn_hewb_cmdgroupitem1; } }; }
设置好相关资源值,Rebuild工程,运行,在模拟器中可以看到刚刚设置的子菜单。
Popularity: 4% [?]
Related
如何在VC调试器中显示Symbian字符串(译)
在VC中编写Symbian程序,在调试状态下很不方便看Symbian的字符串内容,网络上搜到这么一篇,感觉不错,译载一下。
原文标题: How to display Symbian strings and descriptors in Visual C++ debugger
原文地址:http://www.newlc.com/How-to-display-Symbian-strings-and.html
译文地址: http://www.sunnyu.com/?p=135
本文由 sunny译于 2008.11.08 由于英文水平有限,译文难免有很多不足之处,欢迎指正。
————–译文开始—————-
目前,在使用Visual Studio调试Symbian程序时,Symbian的字符串显示方式有点不好,不能直接显示他们的内容(你只能使用Memory窗口查看)。在这儿,我们介绍一个小的技巧,使你在调试时能够方便的显示Symbian中字符串的内容。
我们是得益于Microsoft Visual Studio的”Auto Expand”特性做到这点的。这个特性允许我们指定调试器显示用户数据的方式。可以通过手工编辑AutoExp.dat文件来实现(文件默认在 C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin 目录下 )。
使用你惯用的编辑器打开这个文件,然后 拷贝/粘贴 下面的内容到文件尾部。
;
; Symbian Strings & Descriptors
;
;=======================================================
TDes16=<,t> length=<iLength> max=<iMaxLength>
TDesC16=<,t> length=<iLength>
TPtr=length=<iLength> max=<iMaxLength> ptr=<iPtr+2,su>
TPtr16=length=<iLength> max=<iMaxLength> ptr=<iPtr+2,su>
TPtrC=length=<iLength> ptr=<iPtr,su>
TPtrC16=length=<iLength> ptr=<iPtr,su>
TBuf<*>=length=<iLength> max=<iMaxLength> buf=<iBuf,su>
TBufC<*>=length=<iLength> buffer=<iBuf,su>
HBufC16=length=<iLength> buffer=<iBuf,su>
TLitC<*>=length=<iTypeLength> buf=<iBuf,su>
TDes8=<,t> length=<iLength> max=<iMaxLength>
TDesC8=<,t> length=<iLength>
TPtr8=length=<iLength> max=<iMaxLength> ptr=<iPtr,s>
TPtrC8=length=<iLength> ptr=<iPtr,s>
TBuf8<*>=length=<iLength> max=<iMaxLength> buffer=<iBuf,s>
TBufC8<*>=length=<iLength> buffer=<iBuf,s>
HBufC8=length=<iLength> buffer=<iBuf,su>
TLitC8<*>=length=<iTypeLength> buffer=<iBuf,s>
TFileName= <iBuf,su>
TFullName= <iBuf,su>
重新运行IDE环境, 设置一两个断点, 开始调试方式运行程序, 你在断点可以看到….
怎么样 ?
——
以前都不知道M$的VS有这个特性,又学了一招。vs2005对应的文件在 C:\Program Files\Microsoft Visual Studio 8\Common7\Packages\Debugger 目录下
Popularity: 4% [?]
Related
Symbian 的 sprintf 函数对 “%f” 浮点数格式化不正常?
在测试工程使用了 sprintf 函数,结果发现 %f 行为不正常。
多数时候输出的时候,字符串里面都有不止一个小数点(或者是逗号,我视力不好看不清 :-s)。和想要的只有一个小数点的期望相差太远。
Nokia的论坛上找了一下,好像没有这个问题。有人通过 LC_ALL 来设置,不过我试了没有效果。
只好自己做了一下包装,将浮点数分为整数和小数两个部分处理,然后再拼接起来。
-
std::string floattostr( double d )
-
{
-
char buf[30];
-
#ifdef OS_SYMBIAN
-
// 整数部分
-
int i = d;
-
sprintf (buf, "%d",i);
-
// 小数部分
-
double f = d - i;
-
char buf1[30];
-
sprintf(buf1, "%.6f",f);
-
// 做拼接
-
strcat(buf, &(buf1[1]));
-
#else
-
sprintf(buf, "%f", d);
-
#endif
-
return buf;
-
}
Popularity: 4% [?]
Related
OfferKeyEventL不能响应按键操作?
写了测试代码测试按键控制。
重载了OfferKeyEventL函数
-
TKeyResponse CMyTest_S60AppView::OfferKeyEventL(const TKeyEvent &aKeyEvent, TEventCode aType){
-
// We only want the key press, not the key up/down event
-
if ( aType == EEventKey )
-
{
-
// Check if the 2 key was pressed
-
if ( aKeyEvent.iCode == '1' )
-
{
-
iKeyPressCount ++;
-
return EKeyWasConsumed;
-
}
-
return EKeyWasNotConsumed;
-
}
编译运行,可是怎么按都没有响应,在Debug 中下断点,也不停下来。
后来到Nokia论坛看了一下,发现使用 AddToStackL(iAppView); 添加到列表中才能处理按键响应。
-
void CMyTest_S60AppUi::ConstructL()
-
{
-
// Initialise app UI with standard value.
-
BaseConstructL();
-
-
// Create view object
-
iAppView = CMyTest_S60AppView::NewL( ClientRect() );
-
-
AddToStackL(iAppView);
-
-
PrivacyStatementL();
-
iAppView->BeginSession();
-
}
Popularity: 4% [?]
Related
使用Bitmap Collection tool未能生成mbg文件?
在vs.net中使用carbide.vs的Bitmap Collection tool为测试程序添加了一个小图片,结果在输入日志中提示有mbm文件生成,可是在源码目录下找不到对应的 mbg 文件。是Bitmap Collection tool没有生成mbg文件吗?
看到输出日志中提示mbm文件是生成到sdk目录下的,想mbg是不是也会在sdk目录下呢?于是在sdk目录下搜索.mbg文件,发现在epoc32\include目录下还真的有。打开查看,发现其中定义了枚举量,和自己的文件名有对应关系。
因为epoc32\include已经在工程中包含,所以按照命名的规则放心大胆的在工程中 #include 进来。然后代码中使用图片资源定义常量。
Popularity: 4% [?]
Related
Symbian 程序运行碰到 KERN-EXEC 3异常问题
编译的测试程序在模拟器上运行。出现 KERN-EXEC 3异常。
分析代码,使用的功能很简单,只是创建一个 TDesC * 实例,使用后去 delete 释放了一下。
看了一下代码觉得没有问题,但是事实是出错了,对出错原因不明。
于是网上搜了一下,发现一篇 Symbian C++开发,误用NewLC导致的KERN-EXEC 3异常对照这比了一下,发现自己的还确实有问题,稍作代码调整,问题消失。
编写代码尽量按照nokia建议的多使用 PushL, Pop, PopAndDestory 等方法来做资源的释放管理。
Popularity: 4% [?]
Related
Symbian模拟器的 Cannot start ECMT Manager问题解决
打开Symbian的epoc模拟器,看着菜单上的几个项目,比如 Tools > Preferences 每次选择后过一会就提示
“Cannot start ECMT Manager“,于是到nokia的论坛搜了一下,发现不只我一个人碰到这个问题,已经有解答,就是默认安装的只找java的1.4和1.5(5.0)的,新出的Java是6.0了,程序没有去找,当作系统没有安装java了。
在他的配置文件
Popularity: 4% [?]
Related
Sybmian S60 中中文编码的处理
在不同平台上处理程序,首先要做的是汉字编码的处理。
这儿有一篇Nokia论坛整理的S60平台简体汉字处理浅谈
里面讲解了非Utf-8编码汉字, UTF-8编码汉字, unicode 之间的处理,包括文件读取处理。
按照网页上的代码做包装了一个函数。
-
HBufC * StrToUnicode(TUint8 * NonUnicodeString) {
-
TPtrC8 point8( NonUnicodeString );
-
CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC();
-
//一般简体中文Windows使用的简体汉字编码是Gb2312或Gbk(ASCII字符集的扩展,也称ASCI字符集)
-
if( characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
-
iEikonEnv->FsSession()) == CCnvCharacterSetConverter::EAvailable ){
-
}
-
else if ( characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312,
-
iEikonEnv->FsSession())!= CCnvCharacterSetConverter::EAvailable ){
-
CleanupStack::PopAndDestroy();
-
User::Leave( KErrNotSupported );
-
}
-
TInt state=CCnvCharacterSetConverter::KStateDefault;
-
HBufC* UnicodeString = HBufC::NewL( point8.Length() );
-
TPtr16 point16 = UnicodeString->Des();
-
if( CCnvCharacterSetConverter::EErrorIllFormedInput ==
-
characterSetConverter->ConvertToUnicode(point16, point8, state ) ){
-
CleanupStack::PopAndDestroy();
-
User::Leave(KErrArgument);
-
}
-
CleanupStack::PopAndDestroy(1); // characterSetConverter
-
-
return UnicodeString;
-
}
将他添加到 AppView 类中使用。头文件要包含
-
#include <charconv.h>
以后就可以将非UniCode的字符转化为Symbian内部使用的UniCode来使用。
Popularity: 4% [?]
Related
Symbian S60 SDK 编译运行文件目录
Symbian 的S60 SDK开发环境安装后,进行了编译测试,以及加载模拟器的运行,对这过程中对目录结构有了一点小认识。
Symbian 手机有C: D: E: Z:四个盘符
C盘是手机内存ROM
D盘是临时盘(内存交换用)
E盘是MMC卡盘
Z盘是FLASH ROM盘(Z盘是只读的,保存了所有的系统文件,借系统格式化所用)。
当你打开了C盘或者是E盘后就能看到以下文件夹
IMAGES:图片文件夹
其他:这里面可以放些自己想要的文件
SOUNDS:声音片段.
DIGITAL:数字声音(建议铃声全都放到这里,如果放到SIMPLE中手机有时找不到)
VIDEOS:视频片段。一般RM。3GP、AVI、MP4都放到这里面
SYSTEM:这个是手机安装文件的系统文件夹。
在SYSTEM中又包括很多文件,主要起到作用的是:
APP文件夹:SIS文件主程序都会放在里面
INSTALL文件夹:是手机安装文件生成的反安装程序
MAIL文件夹:是手机短信的存储位置
安装后 SDK 目录下有一个 EPOC32 为基准的路径。
“\epoc32\data” 是模拟器的目录,对模拟器的参数设置文件存放在这边, 里面的 epoc.ini 可以对模拟器的d盘路径做设置, 默认的是 \epoc32\winscw\d
还可以按照样式设置 e 盘位置。
_EPOC_DRIVE_E \epoc32\winscw\e _EPOC_LocDrv_1 F:
这个目录下有 c 和 z 目录,不知道是否真实对应模拟器中的c盘和z盘具体对应关系。
“\epoc32\winscw\c” 是仿真器的C盘
“\epoc32\release\WINSCW\UDEB” 是工程编译后在模拟上运行的程序位置所在,相当于 sys\bin 目录
“\epoc32\release\WINSCW\UDEB\Z” 是UDEB模式仿真器的Z盘
这儿是一篇 CSND上关于Symbian文件和目录处理的一篇文章。
Popularity: 4% [?]