EVC程序转VS2005:解决MenuBar转换问题
5星 · 超过95%的资源 需积分: 9 93 浏览量
更新于2024-09-14
收藏 59KB DOC 举报
“EVC VS2005 移植指南:从EVC4到VS2005的菜单栏资源转换”
在进行EVC(Embedded Visual C++)程序向VS2005(Visual Studio 2005)的移植过程中,会遇到一些特有的挑战,尤其是涉及到资源文件的转换。本文档主要关注的是如何处理EVC中的MenuBar资源在VS2005中的转换,以及解决转换过程中可能出现的问题。
在EVC4中,MenuBar的定义通常是在主RC(Resource Compiler)文件中,而VS2005引入了RC2文件来存放这部分内容。这种变化可能导致在不正确处理的情况下,原本清晰易读的宏定义会被转换成十六进制形式,使得代码难以理解但功能仍然有效。
例如,原始的RC文件中,MenuBar可能有如下定义:
```cpp
IDR_MENUSHMENUBARMOVEABLEPURE
BEGIN
IDR_MENU,2,
I_IMAGENONE,IDM_DONE,TBSTATE_ENABLED,TBSTYLE_AUTOSIZE,IDS_OK,0,
NOMENU,
I_IMAGENONE,IDM_OPTIONS,TBSTATE_ENABLED,
TBSTYLE_DROPDOWN|TBSTYLE_AUTOSIZE,IDS_HELP,0,1,
END
```
在VS2005中,当资源被更新并保存后,这部分定义将转化为十六进制形式:
```cpp
IDR_MENURCDATA
BEGIN
0x0066,0x0002,0xfffe,0x800f,0x0004,0x0010,0x0067,0x0000,0xffff,
0xfffe,0x9c43,0x0004,0x0018,0x0068,0x0000,0x0001
END
```
以下是进行EVC到VS2005移植的步骤:
1. 在EVC4中创建一个新的TestMenuBar工程,选择简单的"HelloWorld!"应用模板,确保工程包含一个工具条菜单。
2. 打开VS2005,通过File|Open|Project/Solution导入EVC4的工程。
3. 遵循向导完成EVC4到VS2005的项目转换。
4. 在Solution Explorer中,右键点击Source Files,选择Add|NewItem。
5. 选择Utility类别,然后选择Text File,命名为TestMenuBar.rc2,点击Add。
6. 展开Solution Explorer,右键点击TestMenuBar.rc,选择View Code。
7. 将rc文件中的MenuBar定义剪切出来。
8. 打开TestMenuBar.rc2文件,将剪切的代码粘贴到其中。
9. 最后,在Resource View中查看TestMenuBar,确保所有资源都已正确导入和更新。
这个过程的关键在于理解和适应VS2005对资源文件的新处理方式。在VS2005中,RC2文件用于存储特定类型的资源,如菜单、对话框和图标等,这与EVC4有所不同。因此,迁移过程中必须将这些资源适当地转移到新的RC2文件中,以避免编译错误或资源显示异常。
在实际操作中,可能会遇到其他类型的资源转换问题,例如位图、图标、对话框等。对于这些问题,也需要按照类似的方法,将资源从RC文件移动到RC2文件,并检查VS2005中的表现是否符合预期。同时,需要注意调整相关的代码引用,确保程序能够正确地找到和加载这些资源。
EVC到VS2005的移植是一个涉及多个层面的过程,包括代码、资源文件、编译设置等。正确理解和处理这些差异是成功完成移植的关键。对于更复杂的项目,可能还需要考虑其他因素,例如库的兼容性、链接器选项、调试配置等。在实践中,建议详细记录每一步的操作,以便于回溯和解决可能出现的问题。
2010-12-06 上传
2010-04-28 上传
2012-11-18 上传
2024-07-31 上传
2023-12-28 上传
2024-01-05 上传
2024-01-22 上传
2023-10-04 上传
2023-11-02 上传
LINYNA117
- 粉丝: 0
- 资源: 6
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫