致命错误CVT1100:资源重复.类型:图标,名称:1(C++,Visual Studio C++ 2010)

fatal error CVT1100: duplicate resource. type:ICON, name:1 (C++, Visual Studio C++ 2010)

本文关键字:C++ Visual 2010 Studio 名称 资源重复 CVT1100 类型 图标 致命错误      更新时间:2023-10-16

我尝试将自定义图标(13x13尺寸(添加到项目中。

我找不到为什么我无法加载图标。

CVTRES : 致命错误 CVT1100:重复资源。 类型:图标, 名称:1, 语言:0x0409 链接:致命错误LNK1123:转换过程中失败 到 COFF:文件无效或损坏

来自resource.h的一些信息:

#define IDI_LOGO   16   //0x10 - no problem here
...
/* Bitmaps */
#define IDB_LOGO            200
#define IDB_GOOD            201
#define IDB_EVIL            202
/* Icons */
#define IDI_TERRAIN 90 // problem starts here
#define IDI_ELEV    91
#define IDI_DRAWREPLACE 92
#define IDI_DRAWFILL    93
#define IDI_DRAWBRUSH   94

Common.rc:

#include "resource.h"
/* Bitmaps */ // no problem
#define IDB_LOGO            200
#define IDB_GOOD            201
#define IDB_EVIL            202
/* Icons */ // problem:
#define IDI_TERRAIN 90
#define IDI_ELEV    91
#define IDI_DRAWREPLACE 92
#define IDI_DRAWFILL    93
#define IDI_DRAWBRUSH   94

文件2.rc:

#include "resource.h"
IDI_LOGO    ICON    DISCARDABLE "res/swgbts.ico"



#include "resource.h"
IDI_LOGO    ICON    DISCARDABLE "res/aokts.ico"

我试图更改IDI_TERRAIN和其他图标的id,但没有帮助。

据此:https://msdn.microsoft.com/en-us/library/b1kw34cb%28v=vs.80%29.aspx我试图更改号码,但没有帮助

请注意,如果我注释掉有问题的行,则会加载IDI_LOGO。有什么帮助吗?

错误在资源中。Visual Studio C++ 2010, Windows XP

我遇到了同样的问题。看起来不可能合并.rc.文件(如果它们都有图标(。尽管您可能拥有不重叠的编号方案。

请参阅以下Microsoft解释:Gary Chang在网上其他地方发布了这个有趣的解释:

以下是有关此问题的根本原因的更多详细信息: "基本上,Icon资源由两个组成。 不同的 Win32 资源类型C RT_GROUP_ICONRT_ICON。你可以思考 RT_GROUP_ICON作为RT_ICON资源的目录。The RT_ICON 资源是实际的图标图像。

VC 资源编辑器尝试在单个图标中为您简化此操作 资源实体和底层处理一些事情,如创建和 ID 单个RT_ICON资源的命名(您在此看到的#1 案例(。VC 资源编辑器也是在它创建的时候创建的。 只能在给定的.exe.dll中具有单个.rc文件。变化 此后在命令行工具中制作以允许使用多个 .rc 为给定.exe.dll做出贡献的文件,但我不相信 资源编辑器的实现曾经通过这种新的可能性重新审视 请记住,至少从它处理图标的方式来看。

所以使用当前的VC++编译器,唯一可以做的是 如果您想拥有多个资源文件,则保留所有图标(和 游标(单个.rc文件中的资源。这将让 VC 资源 编辑器保持所有RT_ICON标识符的唯一性。

希望这有帮助,感谢您的理解! 此致敬意

张国荣 Microsoft社区支持

我解决了这个问题。

我已将一个 .rc 文件的内容移动到主 rc 文件。编译器在包含来自两个资源的 ICON 时遇到问题。我不知道为什么,但这是清晰简单的解决方案。

对我来说,它只是有重复的资源 ID。

#define IDB_LOGO            200
...
#define IDB_EVIL            200

更改其中一个将解决问题。

我在VC 2015中遇到了这个问题,但更改错误很小

2>CVTRES :致命错误CVT1100:重复资源。 类型:对话框,名称:564, 语言:0x041B2>链接:致命错误LNK1123:在转换为 COFF:文件无效或损坏

我在 *.vcxproj 中有任何 *.rc 文件,我的资源 .h 是:

#define IDC_1  100
#define IDR_1  101
//etc
//about 
#define IDXXX_XXX  12000
//and
#define ID_1 32769
//etc

我在"IDXXX_XXX"重新编号和重建后将定义从 100 替换为 999。这样问题就解决了。