【问题标题】:C++ linking error CVT1100: duplicate resourceC++ 链接错误 CVT1100:重复资源
【发布时间】:2016-08-02 19:11:15
【问题描述】:
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。谁能告诉我为什么会发生这个错误以及如何摆脱它?

【问题讨论】:

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


    【解决方案1】:

    我收到了同样的错误消息,CVT1100 ... type:TYPELIB,但在我的情况下,我包含了两个资源文件(将两个 DLL 合并为一个 - 几年前完成) - Microsoft suggested 给出资源不同的号码。但他们已经有了不同的号码。

    MyProjectNameRes.rc:

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

    我的项目名称.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 并修复后遇到了这个问题。

    无法打开资源文件并显示以下消息:

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

    如果我没记错的话:I had to leave only one language in my resource files.convert the file to UTF-16.

    【讨论】:

      猜你喜欢
      • 2015-09-28
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      相关资源
      最近更新 更多