文章类型: VC&C++
关键词: 对话框资源,vc6,vc2010,vs2010
内容摘要: ​vc6工程之间的对话框资源复制使用

vc6工程以及与vs2010下的vc2010之间的对话框资源复制使用

2016/8/2 12:59:45    来源:apple    阅读:

vc6工程之间的对话框资源复制使用


一 打开新工程文件vc61, 从菜单  文件 -- 打开,找到旧的vc6工程文件夹下的资源文件

,比如 vc60.rc,打开它。这样新工程下,将有两个资源文件,新的vc61在左侧,旧的vc60在右侧文件浏览区域。

  转到旧的“vc60.rc”页,
 一)复制粘贴对话框
 1 点选右侧旧的资源文件夹 vc60.rc中的Dialog展开它, 点选其中需要的对话框,比如IDD_VC60_DIALOG,并按键(Ctrl+C)复制它。
 2 点选左侧新的资源文件夹 vc61.rc中的Dialog, 按键(Ctrl+V)粘贴对话框IDD_VC60_DIALOG 到此。
 二) 将旧的文件添加到工程中
 1  Windows资源管理器中,找到旧的对话框IDD_VC60_DIALOG对应的vc60.h头文件和vc60.cpp实现文件,复制它们到新工程所在的文件夹中
 2  从菜单 Project -- AddTo Project -- Files...,从弹出的窗口"Insert Files into Project"中,找到选择vc60.hvc60.cpp文件,按“OK”按钮添加到工程中即可。

3 这样有可能造成类向导不正常,你可以删除项目文件夹下类向导文件 vc61.clw,再类向导时,选择 "Add All" -- "OK" 加入全部文件即可。

三 上步骤二),也可以使用下面两个步骤的方式 实现

 1 给对话框添加类(这步可以不做)
   给工程添加一个对话框,比如也叫IDD_VC60_DIALOG,给其添加类,类名最好和旧的保持一致,这样几乎不用改动代码。
 2 相关内容的添加
    2.1 将旧的vc60.hvc60.cpp内容复制到新文件的适当处即可使用。
    2.2 用文本方式或者使用记事本打开文件“vc60.rc”,找到IDD_VC60_DIALOG相关部分,全部复制替换“vc61.rc”中对应部分。
四 编译测试

===================================

 vc6的对话框资源复制到vc2010

 

一 在vs2010下创建vc++项目,假设名称为“vc2010,在“解决方案资源管理器”选项页下, 右击“资源文件”夹--添加--添加现有项,找到旧的vc工程文件夹下的资源文件 vc6.rc,打开它。

 转到“资源视图”选项页下,

 一)粘贴对话框
 (1) 点击选择文件夹 vc6.rc--Dialog, 选择并复制对话框IDD_VC6_DIALOG
 (2) 点击选择文件夹 vs2010.rc--Dialog, 粘贴对话框IDD_VC6_DIALOG 到此

 二) 将旧的文件添加到工程中

 1  Windows资源管理器中,找到旧的对话框IDD_VC60_DIALOG对应的vc60.h头文件和vc60.cpp实现文件,复制它们到新工程vc2010所在的文件夹中的子文件夹vc2010下。
 2  转到“解决方案资源管理器”--“解决方案"vc2010"”,右击文件夹 “ vc2010--添加--添加现有项,找到本工程下刚复制来的vc60.hvc60.cpp,,按“添加”按钮添加到工程中。

 3 这样有可能造成类向导不正常,你可以删除项目文件夹下类向导文件 vc2010.sdf,再类向导时自动加入全部文件即可。

三 上步骤二),也可以使用下面两个步骤的方式 实现

 1 新建对话框并添加类
   给工程添加一个对话框,比如也叫IDD_VC60_DIALOG,给其添加类,基类选择CDialog,类名最好和旧的保持一致,这样几乎不用改动代码。
 2 相关内容的添加
   2.1 将旧的vc60.hvc60.cpp内容复制到新文件的适当处即可使用。
   2.2 用文本方式或者使用记事本打开文件“vc6.rc”,找到IDD_VC60_DIALOG相关部分,全部复制替换“vc2010.rc”中对应部分。

四 再次转到“解决方案资源管理器”选项页下, 将“资源文件”夹下旧的vc工程文件夹下的资源文件 vc6.rc,选择删除。

五 编译测试 
   尤其要注意上面所说的文件夹的确切名称和位置,否则有可能出现错误。

=============

可能出现的问题:

1 修改原来#includeapp引用文件,改成现在的即可。
2 关于对话框 CAboutDlg ,可能重复,注释或者删除类的声明和使用的相关地方即可。
3 字符串函数等可能出现错误,如果不想改变内容,可以改变工程的字符集即可,步骤为:

  项目 --- VC2010属性 ---配置属性--常规
  点击 “字符集”右侧的选择框,从“使用Unicode字符集”改为“使用多字节字符集”
 更多的问题可以参看《vc6的多字节字符集与vc2010Unicode字符集

4 如果上来出现   Debug Assertion Failed!类似的错误,可能是控件的ID号重复或者没有造成的错误,你可以在下面的数据交换内,按F9键设置断点,按F5键追踪决定是哪个控件出现问题,并针对增加或修改其ID号。

void CVc6Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CWaveGenDlg)
DDX_Control(pDX, IDC_LIST_REPORT, m_listReport);

 

5 祝你成功!

↑ 上一篇文章:在VC++6.0向导中完成项目迁移到VS2012版的错误 关键词:c++,C++,,VC++6.0,项目迁移,VS 发布日期:2016/8/2 9:33:38
↓ 下一篇文章: 一道迅雷多线程编程题 关键词:MFC,多线程,C++,VC,编程题,面试,mfc编程 发布日期:2016/8/2 14:39:56
相关文章:
error C2440 “static_cast” 无法从“void (__thiscall C* )(void)... 关键词:编译出错,VC6,VS2005,VS2008,VS2010,VS2012,VS2013,VS2015 发布日期:2016-08-03 15:33
VC6代码移植到高版本VC时候的常见问题 关键词:VC6代码移植到高版本VC时候的常见问题 发布日期:2016-08-16 16:31
WaitForSingleObject和CEvent的结合用法示例 VC6控制台工程 多线程控制 关键词:WaitForSingleObject和CEvent的结合用法示例,VC6控制台工程,多线程控制 发布日期:2017-04-14 13:41
相关目录:.NETVC&C++软件开发
我要评论
正在加载评论信息......