error C3163: “_vsnprintf”: 属性与以前的声明不一致

C2008 关于_vsnprintf 的重定义问题

在使用VS2008打开一个2005的firebird工程,进行编译时,发生一个关于_vsnprintf 的错误

c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : error C3163: “_vsnprintf”: 属性与以前的声明不一致
c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(350) : 参见“_vsnprintf”的声明

有人说解决办法是这个:

"VC9 CRT 的 vsnprintf 与其他第3方定义的冲突,导致VS2008 编译错误"

error C3163: '_vsnprintf': attributes inconsistent with previous declaration

比如
wpdpack\include\pcap-stdinc.h
定义了,要注释掉
//#define vsnprintf _vsnprintf




#if _MSC_VER < 1500
#define snprintf _snprintf
#define vsnprintf _vsnprintf
#endif

但是并没有发现可以解决问题。

有的又说是这个:

没这么麻烦!既然PCAP.h包的stdio.h的头文件有问题,就先把stdio.h包进来。

就这样:

#include <stdio.h>
#include <pcap.h>

不是头文件有问题,只是winpcap对系统的stdio.h进行了重定议,两个版本间出现了一点小小的磨擦.

最后的解决方法

error C3163: “_vsnprintf”: 属性与以前的声明不一致

据说是因为winpcap对系统的stdio.h进行了重定议,两个版本间出现了一点小小的磨擦,我将WpdPack_4_0_1中的pcap-stdinc.h文件中#define vsnprintf _vsnprintf一句注释掉,问题就解决了。

以上步骤后,就可以进行编程了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值