使用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,如需转载请自行联系原作者。


目录
相关文章
|
1月前
|
存储 Shell Linux
快速上手基于 BaGet 的脚本自动化构建 .net 应用打包
本文介绍了如何使用脚本自动化构建 `.net` 应用的 `nuget` 包并推送到指定服务仓库。首先概述了 `BaGet`——一个开源、轻量级且高性能的 `NuGet` 服务器,支持多种存储后端及配置选项。接着详细描述了 `BaGet` 的安装、配置及使用方法,并提供了 `PowerShell` 和 `Bash` 脚本实例,用于自动化推送 `.nupkg` 文件。最后总结了 `BaGet` 的优势及其在实际部署中的便捷性。
61 10
|
15天前
|
存储 开发工具 Android开发
使用.NET MAUI开发第一个安卓APP
【9月更文挑战第24天】使用.NET MAUI开发首个安卓APP需完成以下步骤:首先,安装Visual Studio 2022并勾选“.NET Multi-platform App UI development”工作负载;接着,安装Android SDK。然后,创建新项目时选择“.NET Multi-platform App (MAUI)”模板,并仅针对Android平台进行配置。了解项目结构,包括`.csproj`配置文件、`Properties`配置文件夹、平台特定代码及共享代码等。
|
17天前
|
开发框架 .NET C#
VSCode开发.net项目时调试无效
【9月更文挑战第22天】在使用 VSCode 开发 .NET 项目时遇到调试问题,可从项目配置、调试配置、调试器安装、运行环境、日志和错误信息等方面排查。确认项目类型及文件配置,检查 `launch.json` 文件及配置项,确保调试器扩展已安装并启用,验证 .NET 运行时版本和环境变量,查看 VSCode 输出窗口和项目日志文件,检查权限及代码错误。若问题仍未解决,可查阅官方文档或社区论坛。
|
22天前
|
人工智能 前端开发 开发工具
解读.NET 技术的开发潜力
本文全面介绍了.NET技术在软件开发领域的核心优势、创新应用及面临的挑战。.NET以其统一的开发平台、强大的工具和跨平台能力,成为企业级应用、Web应用乃至游戏开发的理想选择。然而,在性能优化、容器化及AI集成等方面仍需不断突破。通过积极拥抱开源和社区驱动模式,.NET将持续推动软件开发的进步。
40 1
|
1月前
|
存储 运维
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
|
1月前
|
SQL 关系型数据库 数据库
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
|
1月前
|
消息中间件 开发框架 前端开发
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
|
1月前
|
开发框架 JavaScript 前端开发
|
2月前
|
设计模式 存储 前端开发
揭秘.NET架构设计模式:如何构建坚不可摧的系统?掌握这些,让你的项目无懈可击!
【8月更文挑战第28天】在软件开发中,设计模式是解决常见问题的经典方案,助力构建可维护、可扩展的系统。本文探讨了.NET中三种关键架构设计模式:MVC、依赖注入与仓储模式,并提供了示例代码。MVC通过模型、视图和控制器分离关注点;依赖注入则通过外部管理组件依赖提升复用性和可测性;仓储模式则统一数据访问接口,分离数据逻辑与业务逻辑。掌握这些模式有助于开发者优化系统架构,提升软件质量。
44 5
|
2月前
|
存储 缓存 安全
.NET 在金融行业的应用:高并发交易系统的构建与优化之路
【8月更文挑战第28天】在金融行业,交易系统需具备高并发处理、低延迟及高稳定性和安全性。利用.NET构建此类系统时,可采用异步编程提升并发能力,优化数据库访问以降低延迟,使用缓存减少数据库访问频率,借助分布式事务确保数据一致性,并加强安全性措施。通过综合优化,满足金融行业的严苛要求。
40 1