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属性。

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环境, 设置一两个断点, 开始调试方式运行程序, 你在断点可以看到….

desc-display.png

怎么样 ?

——

以前都不知道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 来设置,不过我试了没有效果。
只好自己做了一下包装,将浮点数分为整数和小数两个部分处理,然后再拼接起来。

  1. std::string floattostr( double d )
  2. {
  3.  char buf[30];
  4. #ifdef OS_SYMBIAN
  5.  // 整数部分
  6.  int i = d;
  7.  sprintf (buf, "%d",i);
  8.  // 小数部分
  9.  double f = d - i;
  10.  char buf1[30];
  11.  sprintf(buf1, "%.6f",f);
  12.  // 做拼接
  13.  strcat(buf, &(buf1[1]));
  14. #else
  15.  sprintf(buf, "%f", d);
  16. #endif
  17.  return buf;
  18. }

Popularity: 4% [?]

Related

OfferKeyEventL不能响应按键操作?

写了测试代码测试按键控制。
重载了OfferKeyEventL函数

  1. TKeyResponse CMyTest_S60AppView::OfferKeyEventL(const TKeyEvent &aKeyEvent, TEventCode aType){
  2. // We only want the key press, not the key up/down event
  3.  if ( aType == EEventKey )
  4.  {
  5.    // Check if the 2 key was pressed
  6.    if ( aKeyEvent.iCode == '1' )
  7.    {    
  8.     iKeyPressCount ++;
  9.     return EKeyWasConsumed;
  10.    }
  11.    return EKeyWasNotConsumed;
  12. }

编译运行,可是怎么按都没有响应,在Debug 中下断点,也不停下来。

后来到Nokia论坛看了一下,发现使用 AddToStackL(iAppView); 添加到列表中才能处理按键响应。

  1. void CMyTest_S60AppUi::ConstructL()
  2.  {
  3.  // Initialise app UI with standard value.
  4.  BaseConstructL();
  5.  
  6.  // Create view object
  7.  iAppView = CMyTest_S60AppView::NewL( ClientRect() );
  8.  
  9.  AddToStackL(iAppView);
  10.  
  11.  PrivacyStatementL();
  12.  iAppView->BeginSession();
  13. }

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了。
在他的配置文件 \epoc32\tools\ecmt\config\config.properties 中,修改epdt.java.version.start将 1.6和6.0添加到列表中,再次在模拟器上打开菜单,发现设置界面正常出来了。

Popularity: 4% [?]

Related

Sybmian S60 中中文编码的处理

在不同平台上处理程序,首先要做的是汉字编码的处理。
这儿有一篇Nokia论坛整理的S60平台简体汉字处理浅谈
里面讲解了非Utf-8编码汉字, UTF-8编码汉字, unicode 之间的处理,包括文件读取处理。
按照网页上的代码做包装了一个函数。

  1. HBufC * StrToUnicode(TUint8 * NonUnicodeString) {
  2.    TPtrC8 point8( NonUnicodeString );
  3.    CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC();
  4.    //一般简体中文Windows使用的简体汉字编码是Gb2312或Gbk(ASCII字符集的扩展,也称ASCI字符集)
  5.    if( characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
  6.     iEikonEnv->FsSession()) == CCnvCharacterSetConverter::EAvailable ){
  7.    }
  8.    else if ( characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312,
  9.      iEikonEnv->FsSession())!= CCnvCharacterSetConverter::EAvailable  ){
  10.      CleanupStack::PopAndDestroy();
  11.      User::Leave( KErrNotSupported );  
  12.    }
  13.    TInt state=CCnvCharacterSetConverter::KStateDefault;
  14.    HBufC* UnicodeString = HBufC::NewL( point8.Length() );
  15.    TPtr16 point16 = UnicodeString->Des();
  16.    if( CCnvCharacterSetConverter::EErrorIllFormedInput ==
  17.      characterSetConverter->ConvertToUnicode(point16, point8, state ) ){
  18.     CleanupStack::PopAndDestroy();
  19.     User::Leave(KErrArgument);
  20.    }
  21.    CleanupStack::PopAndDestroy(1); // characterSetConverter
  22.  
  23.    return UnicodeString;
  24. }

将他添加到 AppView 类中使用。头文件要包含

  1.  #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% [?]

Related

Next Page →