使用Carbide.vs与VS.NET2003构建Symbian开发平台-S60 平台(四)

原文地址:  http://www.360doc.com/content/070508/09/13049_487940.html

可是当我们退出程序时却出现了程序已关闭的错误。

        我的天哪,怎么会这样呢,为什么我的程序不能正常退出呢,遗憾的是模拟器只提示了很简单的错误提示,并没有更详细的错误报告,我们可以通过在 C:\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\wins\c\System\Bootdata 下创建一个 ErrRd 的空文件以让模拟器显示详细的错误信息(请在相应的SDK目录下操作),此时我们再次运行模拟器打开HelloWorld并关闭它,现在是不是提示信息多了一点呢?

       模拟器报出了 ALLOC:17B18158 的错误,像这种类型的错误大多数情况下是因为我们使用了某个对象后忘记关闭它并释放此对象的内存导致的,为了保证程序的正常运行,我们要在使用一个对象后及时将它删除掉,于是我们定位到了HelloWorldContainer.cpp的~CHelloWorldContainer (析构函数) 中 输入以下代码
 
 delete iImage;

    当我们再次编译运行程序后,就不会再出现那讨厌的出错对话框了。

 

5.让我们添加一些功能
 
 我们已经实现了在程序里显示位图的功能了,接下来我们将实现一个登陆框的功能,到时将会用到资源文件。

5.1 为菜单添加项目
 打开 HelloWorld.loc 文件,定义菜单的文本
 
 #define qtn_view1_login_item "Login"

 打开HelloWorld.hrh ,修改THelloWorldCommandIds 的枚举定义,改成以下
 enum THelloWorldCommandIds
 {
     EHelloWorldCmdAppTest = 1,
     EHelloWorldCmdLogin
  };

 EHelloWorldCmdLogin其实就是对应了菜单项 "Login"

 程序的菜单资源定义在了 HelloWorld.rss 文件中,我们打开这个文件,找到以下的定义
 
RESOURCE MENU_PANE r_helloworld_app_menu
    {
    items =
        {
        MENU_ITEM { command = EHelloWorldCmdAppTest; txt = qtn_appl_option_item; },
        MENU_ITEM { command = EAknCmdExit; txt = qtn_appl_exit; }
        };
    }

 把EHelloWorldCmdAppTest 替换成EHelloWorldCmdLogin,再把qtn_appl_option_item替换成qtn_view1_login_item ,这样我们就把程序选项菜单的第一项替换成 "Login" 了。

 




本文转自peterzb博客园博客,原文链接:http://www.cnblogs.com/peterzb/archive/2009/06/11/1501593.html,如需转载请自行联系原作者。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值