我有一个在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);
我不知道如何解决这个问题,非常欢迎任何帮助或解释或指导正确的方向。