网络编程中包含头文件出错,为什么?

qinzhonghello 2008-11-09 04:52:04
使用VC进行网络编程,创建一个控制台工程,如果使用头文件#include编译连接都可以通过,但是使用#include或#incluede只能通过编译,链接的时候会出错,但是在工程属性中的linker->command中添加wsock32.lib就可以解决问题,为什么呢?
错误如下:
TCP_Server error LNK2019: 无法解析的外部符号 _accept@12 ,该符号在函数 _main 中被引用
TCP_Server error LNK2019: 无法解析的外部符号 _bind@12 ,该符号在函数 _main 中被引用
TCP_Server error LNK2019: 无法解析的外部符号 _closesocket@4 ,该符号在函数 _main 中被引用
TCP_Server error LNK2019: 无法解析的外部符号 _htons@4 ,该符号在函数 _main 中被引用
....
...全文
342 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dch4890164 2008-11-12
  • 打赏
  • 举报
回复
没有包含库文件
caitian6 2008-11-12
  • 打赏
  • 举报
回复
winsock2.h 是 头文件
wsock32.lib 是 库文件, 实现了 winsock2.h定义 的函数

hacksouls 2008-11-12
  • 打赏
  • 举报
回复
wsock32.lib ???????是ws2_32.lib吧...
Eleven 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lfchen 的回复:]
在工程的项目设置中project->settings->link->object modules 添加ws2_32.lib

或者

在代码中加上
#pragma commment(lib, "wsock32.lib")
[/Quote]

up
hnzlk 2008-11-10
  • 打赏
  • 举报
回复
有可能是与"windwos.h"有冲突。
gby630 2008-11-10
  • 打赏
  • 举报
回复

//#include <afxsock.h> // MFC socket extensions

#include <winsock2.h>
#pragma commment(lib, "wsock32.lib")
路人乙2019 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lfchen 的回复:]
在工程的项目设置中project->settings->link->object modules 添加ws2_32.lib

或者

在代码中加上
#pragma commment(lib, "wsock32.lib")
[/Quote]可能与windows.h有冲突,你可以先包含windows.h,再包含winsock2.h,再#pragma commment(lib, "wsock32.lib") 。你的问题是你及有可能不会链接wsock32.lib文件,错误的用#include
greatws 2008-11-10
  • 打赏
  • 举报
回复
#pragma commment(lib, "ws2_32.lib")
一条晚起的虫 2008-11-09
  • 打赏
  • 举报
回复
函数入口都在lib中
一条晚起的虫 2008-11-09
  • 打赏
  • 举报
回复
在工程的项目设置中project->settings->link->object modules 添加ws2_32.lib

或者

在代码中加上
#pragma commment(lib, "wsock32.lib")

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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