致命错误 CVT1100:重复资源。类型:ICON,名称:1(C++、Visual Studio C++ 2010)

use*_*649 4 c++ resources icons

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

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

CVTRES:致命错误 CVT1100:重复资源。类型:ICON,名称:1,语言:0x0409 LINK:致命错误 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
Run Code Online (Sandbox Code Playgroud)

通用.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
Run Code Online (Sandbox Code Playgroud)

文件2.rc:

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






#include "resource.h"
IDI_LOGO    ICON    DISCARDABLE "res/aokts.ico"
Run Code Online (Sandbox Code Playgroud)

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

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

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

错误位于resource.h Visual Studio C++ 2010、Windows XP

E. *_*ten 5

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

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

以下是有关此问题根本原因的更多详细信息:“基本上,发生的情况是图标资源由两种不同的 Win32 资源类型C RT_GROUP_ICON和组成RT_ICON。您可以将其视为资源RT_GROUP_ICON目录RT_ICONRT_ICON 资源是实际的图标图像。

VC 资源编辑器尝试在单个图标资源实体中为您简化这一过程,并在幕后处理一些事情,例如单个资源的创建和 ID 命名RT_ICON(您在本例中看到的#1)。VC 资源编辑器也是在那时创建的,当时给.rc定的.exe.dll. 此后,命令行工具进行了更改,以允许使用多个 .rc 文件来为给定的文件做出贡献.exe.dll但我不认为资源编辑器实现会在考虑到这种新可能性的情况下重新审视,至少从以下角度来看:它处理图标的方式。

因此,使用当前的 VC++ 编译器,如果您想要拥有多个资源文件,在这种情况下唯一可以做的就是将所有图标(和光标)资源保留在一个.rc文件中。这将使 VC 资源编辑器保持所有RT_ICON标识符的唯一性。”

希望这对您有所帮助并感谢您的理解!此致,

加里·张 Microsoft 社区支持