在VCL工程中使用socket时应在什么地方包含mstcpip.h头文件

Snakebite1985 2007-02-09 10:07:58
在网上看到很多在builder下使用socket的例程都是控制台程序,因此这些程序只要在main函数之前包含mstcpip.h文件并加入ws2_32.lib库文件就可以使程序正常运行。但我现在要用socket写一个在WinXP下抓取IP包的Application,不知道应该在哪里包含这些winsock头文件和库文件。

我的程序除了一般Application工程都有的主窗体文件(TForm1.cpp)和组件文件(Unit1.cpp和Unit1.h),还包含了一个我自己写的Listener.h和Listener.cpp,在这两个文件中我封装了一个TListener类,用于捕获IP包并且在捕获之后向主窗体发送一个消息,使得数据包能够在主窗体中的列表框中显示。

我曾经尝试在Listener.cpp中包含mstcpip.h和ws2_32.lib,但编译居然说找不到WSASocket这类的winsock函数;然后我又包含了winsock2.h,它又提示头文件里的一些数据类型有重复定义。最后我尝试在各个文件中包含mstcpip.h和ws2_32.lib,编译都有错误!因此我感到非常困惑。请大家帮帮忙!谢谢!
...全文
412 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
pzjydjg 2008-07-28
  • 打赏
  • 举报
回复
收来学习!
Snakebite1985 2007-03-01
  • 打赏
  • 举报
回复
怎么回事?结不了贴,提示“只有未结、非0分贴子才可以结贴给分 ”。

版主请帮忙解决一下这个问题!不然本人信誉受影响。。。
Snakebite1985 2007-03-01
  • 打赏
  • 举报
回复
keiy() 说的对,确实是头文件顺序问题。

谢谢!
sbkopoky 2007-02-17
  • 打赏
  • 举报
回复
有一个香港和悦网络电话的源文件 ,有兴趣妨进入我的BLOG看看
柯本 2007-02-11
  • 打赏
  • 举报
回复
头文件顺序问题,在BCB中经常碰到,这样就可以了:
#include <windows.h>
#include <mstcpip.h> // 将windows.h/mstcpip.h定义在vcl.h之前
#include <vcl.h>
___NULL 2007-02-10
  • 打赏
  • 举报
回复
以前在BCB6下写好,现在在BSD2006下编译也每问题。
你最好把补丁打伤,BCB6 下 Update 4
Snakebite1985 2007-02-09
  • 打赏
  • 举报
回复
一楼的方法也不行,请问是在哪里加上这条语句?
Snakebite1985 2007-02-09
  • 打赏
  • 举报
回复
引用:joyous(NULL)

头文件内
#include <winsock2.h>

项目
导入 ws2_32.lib

没什么问题,成功编译并发送了数据

Socket=WSASocket(AF_INET,SOCK_RAW,IPPROTO_UDP,NULL, 0,0);
-------------------------------------------------------------------------

是在我自己写的Listener.h文件中加入#include <winsock2.h>并且导入 ws2_32.lib 吗?

我试过之后却产生了更多的错误,诸如说winsock2.h文件中的fd_set类型重复定义:
Multiple declaration for 'fd_set',还有 Earlier declaration of 'fd_set'什么的。
真是不知道为什么。
___NULL 2007-02-09
  • 打赏
  • 举报
回复
头文件内
#include <winsock2.h>

项目
导入 ws2_32.lib

没什么问题,成功编译并发送了数据

Socket=WSASocket(AF_INET,SOCK_RAW,IPPROTO_UDP,NULL, 0,0);
ccrun.com 2007-02-09
  • 打赏
  • 举报
回复
试试#include <winsock.hpp>
Snakebite1985 2007-02-09
  • 打赏
  • 举报
回复
在其他的头文件里加上#include <winsock2.h>并倒入ws2_32.lib也不行,这不会是个bug吧?我的BCB版本是Builder6.0,没有打补丁的。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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