高分求救:error C2059: syntax error : 'end of file' 谁见过这个编译错误?

so_crazy 2003-07-10 09:19:33
我在用一个网络发包库libnet的时候,只要把头文件libnet.h加到stdafx.h中去,编译就会出现这样的错误。我原来做VC 控制台程序,也就是用纯c写的时候这个库可以用!现在我想把它图形化,也就是做个MFC应用程序,就老出现这样的问题!大侠帮帮忙~
...全文
661 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
so_crazy 2003-07-15
  • 打赏
  • 举报
回复
问题解决,在和一个师兄探讨的过程中发现解决的途径。其实就是水银说的把用到的库函数的声明加在extern "C"{...},以这种方式声明用到的库函数,在编译连接时就会以C方式连接这些库函数,而不是默认的C++方式,因为这个库是用C语言写的。
多谢各位,揭贴ing……
penter 2003-07-11
  • 打赏
  • 举报
回复
有种可能是与 预编译 头文件有关
wxbfly 2003-07-11
  • 打赏
  • 举报
回复
我也遇到过,不过我把stdafx.h去掉了,然后编译,看哪儿报错,然后再包含相应的头文件。这样就OK,处理以后,生成的文件好象小了很多(动态库)。
so_crazy 2003-07-11
  • 打赏
  • 举报
回复
to kji2k()
上面.h 文件第一段的注释我省略了很多,注释号是完整的
to zhangmin73(zm)
我现在用一个空的MFC工程实验,只要在stdafx.h中一包含libnet.h这个头文件,它报的错误指向的位置是stdafx.cpp的一个空行,和你说的不一样
to wxbfly(背着黄金的飞鸟)
在MFC工程中stdafx.h可以 去掉吗?那不是有很多错误??
penter(净土)说的可能是问题所在,因为我用纯c写的控制台程序(也用了这个库和头)就 没问题,而当我想把它图形化,做在MFC工程里时就有这个问题。不知道预编译 头文件问题在哪?
楼上水银兄说的到底怎么做我还不太清楚,因为我现在用的是别人做好的一个库,头文件和库文件都有。

无论如何,多谢各位!问题只有越讨论越清楚~
zhangmin73 2003-07-11
  • 打赏
  • 举报
回复
我的那个问题这样解决了,先将用到的H文件从菜单add to project,然后
再include.同时在报错了那一行之上,针对具体情况删除无关的型号和操作系统定义,
并去掉实际用到型号和系统的#ifndef #endif ,不知对你的管不管用
kji2k 2003-07-11
  • 打赏
  • 举报
回复
你第一段注释在哪里结束啊?
FAICHEN 2003-07-11
  • 打赏
  • 举报
回复
gz
zhangmin73 2003-07-11
  • 打赏
  • 举报
回复
可惜没人知道,跟我那个问题一样,是自带的H文件吧
badcrow 2003-07-11
  • 打赏
  • 举报
回复
#include "stdafx.h"
或者,取消预编译头选项,在c++设置里。
so_crazy 2003-07-11
  • 打赏
  • 举报
回复
console工程我用这个头文件,编译没问题!
win32 MFC工程我建了好几个,只要一加入libnet.h就会报这样的错误,实在没折的 话我直接用这个库的源码了,反正我只用到了它的一部分库函数,而且我有它的源码。
AkiraChing 2003-07-11
  • 打赏
  • 举报
回复
把函数加在下面中
extern "c" {
...
}
foxmail 2003-07-10
  • 打赏
  • 举报
回复
不一定是少{
有可能是工程建的不对
重新建一个win32的工程
而不是console工程
so_crazy 2003-07-10
  • 打赏
  • 举报
回复
楼上的方法试了也不行~
hanwg 2003-07-10
  • 打赏
  • 举报
回复
加上#define Win32试一试
so_crazy 2003-07-10
  • 打赏
  • 举报
回复
它做的是一个库.lib文件我已经加入到工程里面去了
没有用到它的cpp
zyleon 2003-07-10
  • 打赏
  • 举报
回复
libnet.cpp中有没有#include "stdafx.h";
so_crazy 2003-07-10
  • 打赏
  • 举报
回复
/*
* $Id: libnet.h,v 1.39 1999/10/27 01:37:21 route Exp $
*
* libnet.h - Network routine library header file
*
* Copyright (c) 1998, 1999, 2000 Mike D. Schiffman <mike@infonexus.com>
* All rights reserved.
*


#ifndef __LIBNET_H
#define __LIBNET_H

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <signal.h>
#include <stdlib.h>
#if defined(HAVE_SYS_SOCKIO_H) && !defined(SIOCGIFADDR)
#include <sys/sockio.h>
#endif
#include <sys/stat.h>
#include <sys/types.h>
#include <ctype.h>
#if(WIN32)
#include "LibnetNT.h"
#else
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <net/if.h>
#if !(__linux__)
#include <netinet/ip_var.h>
#else /* __linux__ */
#if (HAVE_NET_ETHERNET_H)
#include <net/ethernet.h>
#endif /* HAVE_NET_ETHERNET_H */
#endif /* __linux__ */
#include <netinet/tcp.h>
#include <netinet/udp.h>
#include <netinet/ip_icmp.h>
#if (__linux__) && !(__GLIBC__)
/*
* We get multiple definitions of IGMP_AGE_THRESHOLD if we include netinet.
*/
#include <linux/igmp.h>
#else
#include <netinet/igmp.h>
#endif
#include <arpa/inet.h>
#include <sys/time.h>
#include <netdb.h>
#endif


#include <errno.h>
#include <assert.h>

#include "./libnet/libnet-headers.h"
#include "./libnet/libnet-structures.h"
#include "./libnet/libnet-macros.h"
#include "./libnet/libnet-asn1.h"
#include "./libnet/libnet-functions.h"
#include "./libnet/libnet-ospf.h"

#define LIBNET_VERSION "1.0.1a"

#if (!LIBNET_LIL_ENDIAN && !LIBNET_BIG_ENDIAN)
#error "byte order has not been specified, you'll
need to #define either LIBNET_LIL_ENDIAN or LIBNET_BIG_ENDIAN. See the
documentation regarding the libnet-config script."
#endif

#endif /* __LIBNET_H */

/* EOF */

这是libnet的头文件,我在纯c下已经可以用了啊!我觉得楼上水银兄说的可能是问题所在
libnet都是c语法,我用的是它在window的移植版本。好象跟MFC的类有冲突~
AkiraChing 2003-07-10
  • 打赏
  • 举报
回复
用了C的语法
无敌魔仙 2003-07-10
  • 打赏
  • 举报
回复
绝对是哪个地方或者是少了 } 或者是 ; 之类的反正是有个地方声明没有结束
cy214 2003-07-10
  • 打赏
  • 举报
回复
post your libnet.h here..
加载更多回复(3)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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