c++-VS2003升级编译错误LNK1179错误: 重复的 COMDAT“_IID_IDispatchEx"

问题描述

VS2003升级编译错误LNK1179错误: 重复的 COMDAT“_IID_IDispatchEx"

原来的代码在2003下可正常编译,但是由于其他代码都是2010的,为统一调整必须将2003项目升级到2010,问题也就跟着来了,编译无法通过,提示如下出错信息:
1、error LNK1179: 无效或损坏的文件: 重复的 COMDAT“_IID_IDispatchEx”
2、_IID_IDispatchEx重复初始化,文件dispeX.h(121)

通过查找发现dispeX.h是个库文件,位于MicrosoftSDKsWindowsv7.0AInclude下
121行代码:DEFINE_GUID(IID_IDispatchEx, 0xa6ef9860, 0xc720, 0x11d0, 0x93, 0x37, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);

网上查了一下,MSDN关于LNK1179的解释是http://msdn.microsoft.com/zh-tw/library/cddbs9aw.aspx 包含了兩個或多個具有相同名稱的 COMDAT,使用了限制外部名稱 (External Name) 長度的 /H,和在 COMDAT 中封裝函式的 /Gy,可能會產生這項錯誤。

可是实际调试过程,并没有在使用/H,(属性— C++ — 命令行下查看)
并且也禁用过/Gy,编译时仍然报同样的错误

我彻底搞晕了,不知道应当怎么处理,请求各位高手帮看一下,谢谢!!

解决方案

说实话,应该是没什么好办法,工程代码多不,最好的办法是用VS2010重新写一遍

解决方案二:

这个估计是,要用调剂编译什么的加以限制吧。

解决方案三:

最好将问题部分,重构一下,,,,,

时间: 2024-09-17 03:40:25

c++-VS2003升级编译错误LNK1179错误: 重复的 COMDAT“_IID_IDispatchEx"的相关文章

iar-嵌入式新手求教,在IAR下对两个工程合并,编译出现未知错误。。

问题描述 嵌入式新手求教,在IAR下对两个工程合并,编译出现未知错误.. 我是嵌入式刚开学的新手 在我们嵌入式课程上面,我们通过IAR对NXP LPC2478进行开发和编译学习.. 课程中收到了一些实验例程,其中就包括LCD 和 SD卡读取的相关例子.. 在学习中,我希望把SD卡读写和LCD显示整合在一起,能实现读取SD卡中数据显示在LCD屏幕的功能.. 在两个工程合并中,我用LCD的例子为基础,依次添加SD卡中相关的.c文件和.h文件...在添加SD卡的例子过程中,出现的未知错误,添加mmc.

正确理解PHP程序编译时的错误信息

编译|程序|错误     我们编写程序时,无论怎样小心谨慎,犯错总是在所难免的.这些错误通常会迷惑PHP编译器.如果开发人员无法了解编译器报错信息的含义,那么这些错误信息不仅毫无用处,还会常常让人感到沮丧. 编译PHP脚本时,PHP编译器会尽其所能报告它遇到的第一个问题.这样就产生一个问题:只有当错误出现时,PHP才能将它识别出来(本文后面对此问题进行了详细描述).正是由于这个缘故,编译器指出出错的那行,从表面上看来可能语法正确无误,或者可能是根本就不存在的一行! 更好地理解错误信息可以大大节省

PHP技巧:正确理解PHP程序编译时的错误信息

   我们编写程序时,无论怎样小心谨慎,犯错总是在所难免的.这些错误通常会迷惑PHP编译器.如果开发人员无法了解编译器报错信息的含义,那么这些错误信息不仅毫无用处,还会常常让人感到沮丧. 编译PHP脚本时,PHP编译器会尽其所能报告它遇到的第一个问题.这样就产生一个问题:只有当错误出现时,PHP才能将它识别出来(本文后面对此问题 进行了详细描述).正是由于这个缘故,编译器指出出错的那行,从表面上看来可能语法正确无误,或者可能是根本就不存在的一行! 更好地理解错误信息可以大大节省确定并改正错误内容

使用VC2005编译出现这个错误

Include\unknwn.idl(108) : error MIDL2025 : syntax error : expecting ] or , near "annotation" Include\unknwn.idl(108) : error MIDL2026 : cannot recover from earlier syntax errors; aborting compilation 如果使用VC2005编译出现这个错误,是由于使用了新版本的VISTA SDK头文件,而使用

c-程序编译编译时提示错误

问题描述 程序编译编译时提示错误 程序编译编译时提示错误 Cannot open include file: 'dshow.h': No such file or directory ,什么问题,如何解决,急求 解决方案 没有包含dshow.h头文件,在使用的地方#include ""dshow.h"" 解决方案二: 'dshow.h' 是 DirectX 开发包中的头文件,你的编译环境中应该是没有这个头文件,才导致编译出错的. 安装 DirectX SDK 试试吧

ns3-ns-3编译运行出现错误

问题描述 ns-3编译运行出现错误 ns-3新手,无法编译运行scratch目录的*.cc脚本,提示program 'scratch/*'not found,available program are:......,该怎么解决啊?谢谢 解决方案 http://zzgthk.iteye.com/blog/1283626 解决方案二: http://blog.csdn.net/piyajee/article/details/5894259

android 源码编译出现的错误

问题描述 android 源码编译出现的错误 xxxxx@compiler:~/xxxx/0313-test-1/0313/packages/xxxx/myTV$ mm -B PLATFORM_VERSION_CODENAME=RELPLATFORM_VERSION=4.4.2TARGET_PRODUCT=m201TARGET_BUILD_VARIANT=userTARGET_BUILD_TYPE=releaseTARGET_BUILD_APPS=TARGET_ARCH=armTARGET_AR

嵌入式-关于编译googlecoredumper的错误

问题描述 关于编译googlecoredumper的错误 是在arm平台上编译的 arm是COTEX-A9的,指令集应该armv7 我的编译器是arm-linux-gnueabihf-g++-4.8 arm-linux-gnueabihf-gcc-4.8 编译的时候出现如下错误,分别是下图红色圈圈的位置报错:提示的错误是:error: expected string literal before '__syscall' 我稍微看了下内嵌汇编语法,发现这样写确实不太对,指令部分应该都是用双引号包括

c++基础-C++关于友元函数问题(VS2013编译环境提示错误)

问题描述 C++关于友元函数问题(VS2013编译环境提示错误) 这段代码用VS2013调试出来能够有黑窗口,且正常运行,但是VS2013总是提示错误,说是Date类的month,day , year不可访问,他们虽然声明为private,但是友元 函数不能访问Date类的私有成员吗? #include using namespace std; class Date; class Time { public: Time(int, int, int); void display(Date &);