我有一个在 VS2003 中运行良好且没有错误的项目,但由于某种原因我必须将其更新到 2010。更新项目后,在构建项目时,出现以下错误:
1.errorLNK1179:Invalid or corrupt files :duplicate comdat“IIDIDispatchEx”
2.IIDIDispatchEx duplicate initialization on file dispeX.h(121)
我对 LNK1179 的发现表明该错误可能是由于我有多个 COMDAT 共享相同的名称,并使用/h
限制外部名称的长度,同时将 /Gy 打包在 COMDAT 中。
但是/H
代码中没有使用选项,我禁用了/Gy
. 但错误仍然发生。
搜索dispeX.h
,我在MicrosoftSDKs\Windows\v7.0A\Include\
. 第 121 行的代码是:
DEFINEGUID(IIDIDispatchEx, 0xa6ef9860, 0xc720, 0x11d0, 0x93, 0x37, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);
我不知道如何解决这个问题,非常欢迎任何帮助或解释或指导正确方向。