VS 2008 无法解析_in_, _in_opt_的错误

本文介绍了在VS 2008中使用WinDDK头文件时遇到的编译错误,错误原因是工程额外的include路径导致编译器引用了错误的sal.h文件,未找到_In_opt_定义。解决方案包括更改include路径优先级或直接修改crtdefs.h文件中的引用方式。
摘要由CSDN通过智能技术生成

错误的出现是这样的:

我在VS2008的一个工程中添加了WinDDK中头文件difxapi.h的引用,并在工程Properties->C/C++->Additional Include Directories中添加了difxapi.h所在的目录C:\WinDDK\7600.16385.1\inc\api\。

再编译时,编译器提示错误:

C:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(60) : error C2065: '_In_opt_' : undeclared identifier


错误的原因分析:

1. 可以看出,问题出现在new.h文件,原因是_In_opt_没有被声明。那么我们来找一下是否真的如此。

在sal.h文件(VA指向了C:\Program Files\Microsoft Visual Studio 9.0\VC\include\sal.h)中,找到了_In_opt_的定义:

#define _In_opt_ _Pre_opt_valid_ _Deref_pre_readonly_

而sal.h文件在crtdefs.h文件中被include,crtdefs.h文件又被new.h文件include,这样看来,应该是正常声明过了。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值