注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mie

 
 
 

日志

 
 

VC 2010+DirectX SDK 9.0c(2005.12)编译错误:error C2374: “MEDIASUBTYPE_Y411”: 重定义;多次初始化  

2011-03-03 12:46:08|  分类: 编译错误 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

编译错误:error C2374: “MEDIASUBTYPE_Y411”: 重定义;多次初始化

编译环境:VC 2010

DirectX SDK版本:9.0c(2004年的版本,加上2005.12更新的SDK补丁)

头文件包含:


#include <atlbase.h>
#include <atlstr.h>

#include <initguid.h>
#include <streams.h>
#include <Guiddef.h>
#include <dvdmedia.h>

 

解决方法:

将头文件包含改为:


#include <atlbase.h>
#include <atlstr.h>

#include <guiddef.h>

//#include <initguid.h>
#include <streams.h>
#include <Guiddef.h>
#include <dvdmedia.h>

 原因:

initguid.h和guiddef.h的唯一不同在于有无定义INITGUID宏。当定义了INITGUID宏时,DEFINE_GUID宏的作用是定义一个CLSID变量;当没有定义INITGUID宏时,DEFINE_GUID等同于引用外部的CLSID变量。即,有无extern变量关键字声明。

 

改用

#include <guiddef.h>

同时,在需要自定义CLSID的地方,定义一下INITGUID宏,即可。例如:


#undef DEFINE_GUID
#include <InitGuid.h>

// {BB5797A6-2009-4143-A06E-EDC5A0384A91}
DEFINE_GUID(CLSID_RotateFilter,
 0xbb5797a6, 0x2009, 0x4143, 0xa0, 0x6e, 0xed, 0xc5, 0xa0, 0x38, 0x4a, 0x91);

// {7A4AD655-851C-4330-A61F-2799D699C280}
DEFINE_GUID(IID_IRotate,
 0x7a4ad655, 0x851c, 0x4330, 0xa6, 0x1f, 0x27, 0x99, 0xd6, 0x99, 0xc2, 0x80);

 

By:zhanyonhu

  评论这张
 
阅读(1884)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016