提问人:Jeff 提问时间:7/29/2023 最后编辑:Jeff 更新时间:7/31/2023 访问量:33
VC 链接器错误 - CVT1100重复的资源。类型:MESSAGETABLE
VC linker error - CVT1100 duplicate resource. type:MESSAGETABLE
问:
我得到了一个非常古老的项目,其中包含一系列 DLL 和驱动程序,自 2012 年以来就没有构建过。我试图让它起死回生,但作为一个司机,我真的在为一些用户模式资源的东西而苦苦挣扎。
我收到以下错误 -
CVTRES : fatal error CVT1100: duplicate resource. type:MESSAGETABLE, name:1, language:0x0409
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
该项目有 1 个 .rc 文件,它定义了 3 个图标和一个VS_VERSION_INFO,它有一个包含一些消息的 .mc 文件。如果我删除 .rc 并使用 .mc 构建它,我会在生成的二进制文件中看到以下两个资源:
--type=11 --name=1 --language=1033 [type=messagelist offset=0x1ee0a0 size=1452]
--type=24 --name=2 --language=1033 [offset=0x1ee650 size=381]
如果我摆脱了 .mc 并仅使用 .rc 构建它,那么我会看到以下资源:
--type=3 --name=1 --language=1033 [type=icon offset=0x1ee4f0 size=744]
--type=3 --name=2 --language=1033 [type=icon offset=0x1ee7f0 size=744]
--type=3 --name=3 --language=1033 [type=icon offset=0x1eeaf0 size=744]
--type=14 --name=101 --language=1033 [type=group_icon offset=0x1ee7d8 size=20]
--type=14 --name=102 --language=1033 [type=group_icon offset=0x1eead8 size=20]
--type=14 --name=103 --language=1033 [type=group_icon offset=0x1eedd8 size=20]
--type=16 --name=1 --language=1033 [type=version offset=0x1ee1f0 size=768]
--type=24 --name=2 --language=1033 [offset=0x1eedf0 size=381]
但是,如果我尝试同时包含两者,则会出现错误。我不明白冲突到底是什么,因为 .mc 中只有一组消息,而 .rc 中没有消息表。
对我在这里缺少什么有什么想法吗?
答:
0赞
Jeff
7/31/2023
#1
最后,我唯一能想到的让 .rc 和 .mc 共存的办法就是在 foo.mc 文件上运行 mc 以生成一个新的 foo.rc。然后在另一个 .rc 文件 bar.rc 中,我在 foo.rc 上使用了 include。如果这种简单的方法有效,我不确定为什么构建环境不能自行协调。但希望这对未来的人有所帮助!
评论