如何解析 CVT1100 类型:Visual Studio 2010 中的字符串

Posted

技术标签:

【中文标题】如何解析 CVT1100 类型:Visual Studio 2010 中的字符串【英文标题】:How to resolve CVT1100 type:STRING in VisualStudio 2010 【发布时间】:2014-01-28 17:15:41 【问题描述】:

我正在尝试编译具有两个资源文件的项目。第一个文件包含一个对话框、一个菜单等,除了一个字符串表,第二个文件只包含一个字符串表。所以,每次我尝试构建我的项目时,我都会收到以下错误:

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

我尝试禁用增量链接,重命名字符串表中的字符串标签,完全更改字符串的标识符,谷歌这个问题,在我的解决方案中搜索这个 ID,但错误保持不变,除了以下内容部分:

name:969

请帮帮我,我真的对这个问题很恼火。提前致谢!

【问题讨论】:

您的 resource.h 文件中可能有两个不同的符号等于 969。 是的,你是对的,但我试图找到这个符号但我失败了。实际上,我的解决方案没有具有此类 ID 的资源。我创建了一个实验项目,一段时间后我发现 Visual Studio 在编译过程中更改了这个 ID。我希望有人有类似的问题,并能告诉我解决方案是什么。 【参考方案1】:

重复字符串也有类似的问题。我试图将 ID 为 9001 - 9019 的字符串从主 .rc 文件移动到第二个 .rc 文件,但链接器出现此错误:

2>CVTRES : fatal error CVT1100: duplicate resource.  type:STRING, name:564, language:0x041B
2>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

我试图找到 ID 为 564 的字符串,但没有。所以很明显,字符串的名称指的是单个字符串的 ID 以外的东西。然后我试图找到,在错误消息中引用了哪些移动的字符串,并且似乎从 9008 开始的每个字符串在我移动它之后都会导致错误。

在阅读上一个答案后,错误消息是指字符串组或字符串表(.rc 文件中的关键字 STRINGTABLE),我意识到,通过将部分字符串移动到另一个 .rc,我有效地创建了 2 个字符串表ID 为 564。

解决方案:将字符串 9008 - 9019 的 ID 更改为 9108 - 9119(我还必须检查其他字符串的 ID,这些字符串位于字符串 9019 之后的资源中)有助于消除错误。

【讨论】:

【参考方案2】:

有类似的问题。字符串以 16 个 ID 为一组进行分组。 969 是组#,因此指的是一组 16 个字符串资源 ID,以 969*16= ID 15504 开头。如果您有多个资源文件,请查找与 15504 到 15519 范围内的 ID 号重叠的任何字符串资源。

如果 .rc 或 .h 已被手动编辑,您也可以尝试清除(删除)以 .aps 结尾的已编译资源文件。

附:语言 0x0419 指的是俄语。 0x0409 将是美国英语。

【讨论】:

以上是关于如何解析 CVT1100 类型:Visual Studio 2010 中的字符串的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2019 CVT1101 & LNK1123 致命错误

1100. 抓住那头牛最短路的特殊移动

如何让 yesod-persistent 识别我的 aeson 解析实体数组的类型?

在 Visual Studio 2015 中调试时无法解析参数名称类型 ISession

日产cvt油ns2v能跟ns3混用吗?

如何在 Visual Studio 2012 中更正 wpf datagrid 列名冗余