hook send/sendto函数的问题
想练习一下inline hook,exe程序用来加载此DLL,得到指定进程的线程ID,调用此DLL导出的Installhook()函数用来对指定的进程安装钩子过程,想inline hook 此进程的WS2_32.dll的一些函数,想拦截包。下面是一个完整DLL工程,但是遇到了一个奇怪的问题,把#include <Winsock2.h>这句注释掉能编译成功,加上之后,会出现下面的错误。
哪位兄弟帮我看下啊。
下面是下载地址
http://www.brsbox.com/filebox/uploadcomplete/randstr/4961I2HMGmj48c72Tu87JW1915/fgid/707c09885160b93194337095a3e7c0fa/dirids/0
1>------ 已启动生成: 项目: FuckVClient, 配置: Debug Win32 ------
1>正在编译...
1>FuckVClient.cpp
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(91) : warning C4005: “AF_IPX”: 宏重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(460) : 参见“AF_IPX”的前一个定义
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(127) : warning C4005: “AF_MAX”: 宏重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(479) : 参见“AF_MAX”的前一个定义
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(163) : warning C4005: “SO_DONTLINGER”: 宏重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(402) : 参见“SO_DONTLINGER”的前一个定义
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(206) : error C2011: “sockaddr”: “struct”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(485) : 参见“sockaddr”的声明
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(384) : error C2143: 语法错误 : 缺少“}”(在“常量”的前面)
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(384) : error C2143: 语法错误 : 缺少“;”(在“常量”的前面)
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(384) : error C2059: 语法错误 : “常量”
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(437) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(437) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(437) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(518) : warning C4005: “IN_CLASSA”: 宏重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(287) : 参见“IN_CLASSA”的前一个定义
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(524) : warning C4005: “IN_CLASSB”: 宏重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(293) : 参见“IN_CLASSB”的前一个定义
的链接
1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(778) : 参见“inet_addr”的声明
1>c:\program files\microsoft sdks\windows\v6.0a\include\winsock2.h(1745) : error C2375: “inet_ntoa”: 重定义;不同的链接
1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(780) : 参见“inet_ntoa”的声明
1>c:\program files\microsoft sdks\windows\v6.0a\include\winsock2.h(1763) : error C2375: “listen”: 重定义;不同的链接
1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(782) : 参见“listen”的声明