C ++链接错误CVT1100:重复资源

时间:2016-08-02 19:11:15

标签: c++ visual-studio fatal-error

1>CVTRES : fatal error CVT1100: duplicate resource.  type:TYPELIB, name:1, language:0x0409 
1>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

我正在尝试将现有的C ++项目从32位转换为64位,从VS6转换为VS2008。任何人都可以告诉我为什么会发生这种错误以及如何摆脱它?

1 个答案:

答案 0 :(得分:0)

我有一条相同的错误消息,内容为CVT1100 ... type:TYPELIB,但就我而言,我包含了两个资源文件(将两个DLL合并为一个-多年前完成的)-{{ 3}},为资源指定一个不同的数字。但是他们已经有一个不同的号码。

MyProjectNameRes.rc:

:
:
3 TEXTINCLUDE 
BEGIN
    "1 TYPELIB ""MyProjectNameRes.tlb""\r\n"
    "\0"
END
:
:
1 TYPELIB "MyProjectNameRes.tlb"
:

MyProjectName.rc

:
3 TEXTINCLUDE 
BEGIN
    "2 TYPELIB ""MyProjectName.tlb""\r\n"
    "#include ""MyProjectNameRes\\MyProjectNameRes.rc"" // For Res dll union\r\n"
resources\r\n"
END
:
:
2 TYPELIB "MyProjectName.tlb"
#include "MyProjectNameRes\MyProjectNameRes.rc" // For Res dll union
:

事实证明,包含资源文件保留了“ 1”(我无法确切地说明原因),因此我将包含资源中的“ 1”替换为“ 3”。

在MyProjectNameRes.rc中:

  • "1 TYPELIB ""MyProjectNameRes.tlb""\r\n"-> "3 TYPELIB ""MyProjectNameRes.tlb""\r\n"
  • 1 TYPELIB "MyProjectNameRes.tlb"-> 3 TYPELIB "MyProjectNameRes.tlb"

*请注意,在移到Visual Studio 2017并修复它之后,我遇到了这个问题。

使用以下消息无法打开资源文件: Microsoft suggested

此文件中的资源使用未知语言:中性(默认)(未知子语言:0x3) 无法打开该文件。

如果我没有记错的话:enter image description hereI had to leave only one language in my resource files.