VC6配置Directshow时的strmif.h出现的C2146错误

在给VC6配置Directshow SDK时,很多人会出现C2146和fetal error C1004问题,作为对CSDN和各位大虾的回报,特写此文,以飨读者!

症状:/include/strmif.h(1022) : error C2146: syntax error : missing ';' before identifier 'HSEMAPHORE' 

出现此问题,主要是strmif.h定义不完善,有以下解决办法:

a方法:在VC的菜单Tools | Options | Directories| 的include中,把D:/Microsoft Visual Studio/VC98/INCLUDE,就是VC自带的include放置于DXSDK的include之前。

b方法:修改DXSDK中的头文件。在strmif.h中找到typedef DWORD_PTR HSEMAPHORE; 在其上一行加入如下两条语句 typedef unsigned long LONG_PTR;  typedef unsigned long DWORD_PTR; 然后找出DXSDK中的control.h,定位到typedef LONG_PTR OAEVENT;在其上一行加入typedef unsigned long LONG_PTR;,保存修改,然后重新编译,rebuild all,就可以了!

两种方法都可以,用一种就行了。

欢迎交流!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值