在VC工程中添加多个RC文件(在VC2005编译通过)

本文介绍了如何在Visual C++ 2005工程中合并多个RC资源文件,避免编译错误。当尝试将资源从一个工程(如VC_Project2)合并到另一个工程(如VC_Project1)时,会遇到资源重复的错误。解决方法是删除合并进来的RC文件中与原有工程资源重复的部分,并确保所有相关cpp、h和resource.h文件一起迁移。同时,需要修改被添加RC文件中的resource.h引用,以避免冲突。
摘要由CSDN通过智能技术生成

在VC工程中添加多个RC文件

rc2里面的格式跟普通的rc是一样的文本格式,直接手工修改,也可以用VS打开修改.

 

有时需要把VC_Project2工程的资源合到VC_Project1工程的资源中(*.rc文件), 通常的做法就是用文本的方式打开VC_Project2.rcVC_Project1.rc然后人工的判断拷贝粘贴了。

 

其实我们可以直接把VC_Project2.rc文件添加到VC_Project1工程中, 但此时编译可能会报下面错误

1>CVTRES : fatal error CVT1100: 重复的资源。type:VERSION, name:1, language:0x0804

1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

 

这个错误的意思就是资源定义重复了,其实重复也很正常,因为在创建VC_Project1VC_Project2两个工程时,很多代码都是VC自动生成的,通常这些自动生成的代码就是产生这个错误的原因了。

 

解决办法就是把其中一个(那肯定是后来添加进来的那一个了)(这里是VC_Project2.rc)rc文件中与工程本身的rc(这里是VC_Project1.rc)文件相同的部分删掉即可。

 

还要注意的是移了VC_Project2.rc文件过来, 必须要把VC_Project2工程中对应的cpph文件还有最重要的一个是VC_Project2工程的resource.h文件也要移到VC_Project1工程中。

 

例子:

具体步骤如下:

1. 分别创建了TryRCTryRC2的基于对话框的VC工程。

并在TryRC2工程中添加了对话框 IDIDC_DIALOG1, IDC_DIALOG1中添加了一个按钮IDC_BUTTON1, IDC_DIALOG1绑定到CDlgR类中,两个文件分别是DlgR.cppDlgR.h

 

2. 看对比TryRC.rcTryRC2.rc文件的内容

TryRC.rc(TryRC2.rcTryRC.rc内容基本一致,只是多了一个IDC_DIALOG1)

// Microsoft Visual C++ generated resource script.

//

#include "resource.h"

 

#define APSTUDIO_READONLY_SYMBOLS

/

//

// Generated from the TEXTINCLUDE 2 resource.

//

#include "afxres.h"

 

/

#undef APSTUDIO_READONLY_SYMBOLS

 

/

// 中文(中华人民共和国) resources

 

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)

#ifdef _WIN32

LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

#pragma code_page(936)

#endif //_WIN32

 

#ifdef APSTUDIO_INVOKED

/

//

// TEXTINCLUDE

//

 

1 TEXTINCLUDE

BEGIN

    "resource.h/0"

END

 

2 TEXTINCLUDE

BEGIN

    "#include ""afxres.h""/r/n"

    "/0"

END

 

3 TEXTINCLUDE

BEGIN

    "#define _AFX_NO_SPLITTER_RESOURCES/r/n"

    "#define _AFX_NO_OLE_RESOURCES/r/n"

    "#define _AFX_NO_TRACKER_RESOURCES/r/n"

    "#define _AFX_NO_PROPERTY_RESOURCES/r/n"

    "/r/n"

    "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)/r/n"

    "LANGUAGE 4, 2/r/n"

    "#pragma code_page(936)/r/n"

    "#include ""res//TryRC.rc2""  // Microsoft Visual C++ 编辑的资源/r/n"

    "#include ""afxres.rc""     // 标准组件/r/n"

    "#endif/r/n"

    "/0"

END

 

#endif    // APSTUDIO_INVOKED

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值