vs2008编译c程序的一个问题

VxD1 2008-10-03 11:14:06
新建项目为win32控制台程序,但是不能使用vs2008编译这段代码,原因是使用printf函数报错

源码为:

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

void main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int i = 0;
char errbuf[PCAP_ERRBUF_SIZE];

if (pcap_findalldevs(&alldevs, errbuf) == -1)
{
printf("Error in pcap_findalldevs: %s\n", errbuf);
exit(1);
}

for(d = alldevs; d; d = d->next)
{
printf("%d. %s", ++i, d->name);
if (d->description)
printf("(%s)\n", d->description);
else printf("(No description available)\n");
}

if (i == 0)
{
printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
return ;
}

pcap_freealldevs(alldevs);
}



报错如下:
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”的声明
不知道如何解决,如何能在vs2008下使用printf函数
...全文
1343 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
BUPTLX 2009-07-17
  • 打赏
  • 举报
回复
那在哪个文件的什么位置修改#define vsnprintf _vsnprintf 呢?谢谢
tws67 2008-12-15
  • 打赏
  • 举报
回复
只要修改代码:

#define vsnprintf _vsnprintf



#if (_MSC_VER < 1500)
#define vsnprintf _vsnprintf
#endif

VS2008里边已经内在定义了vsnprintf,在VS2008以下版本需要定义,在2008版不用定义
yaaachao 2008-10-31
  • 打赏
  • 举报
回复
http://geekswithblogs.net/dotnetnomad/archive/2008/01/30/119088.aspx
看下
supercow 2008-10-04
  • 打赏
  • 举报
回复
#include <tchar.h> 加上试试呢.
supercow 2008-10-04
  • 打赏
  • 举报
回复
用iostream
cout 暂时用下吧.
我以前winpcap 都是用vc2003编译的. printf那些都能用的.
我在2008下试试再说.
机智的呆呆 2008-10-04
  • 打赏
  • 举报
回复
#include <stdio.h>

#include <cstdio>
using namespace std;
试试
VxD1 2008-10-04
  • 打赏
  • 举报
回复
vs2008可以编译c程序的,但是这段程序放在2008中编译会提示printf错误
Soulic 2008-10-04
  • 打赏
  • 举报
回复
是不是vs2008就不能编译c程序啊
VxD1 2008-10-04
  • 打赏
  • 举报
回复
还是不行
VxD1 2008-10-04
  • 打赏
  • 举报
回复
不行,在vc6里面又能正常编译链接
Arthur_ 2008-10-04
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 VxD1 的回复:]
vs2008可以编译c程序的,但是这段程序放在2008中编译会提示printf错误
[/Quote]

在前面两个连接里面提到的 也不能解决吗?
wangask00 2008-10-04
  • 打赏
  • 举报
回复
在项目的属性里面修改
将unicode类型,改为多字节类型试试
xpycc2008 2008-10-04
  • 打赏
  • 举报
回复
新建为空项目吧,Win32控制台项目VC会加很多码的。。。
VxD1 2008-10-03
  • 打赏
  • 举报
回复
不行
闪破风浪 2008-10-03
  • 打赏
  • 举报
回复
#include <stdio>
把。h去掉试一试~~~
Arthur_ 2008-10-03
  • 打赏
  • 举报
回复
http://fixunix.com/snmp/358749-cant-compile-libsnmp-under-vs2008.html
Arthur_ 2008-10-03
  • 打赏
  • 举报
回复

看看这个我就不翻译了:
https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2042747&SiteID=1&pageid=0
VxD1 2008-10-03
  • 打赏
  • 举报
回复
都不行
wei1019 2008-10-03
  • 打赏
  • 举报
回复
重新建一个工程,或者把debug 删除看看
chenzhp 2008-10-03
  • 打赏
  • 举报
回复
重新建一个工程
加载更多回复(2)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧