"Winsock.h" 和 "Winsock2.h" ?
清晨曦月 博客专家认证 2009-04-30 01:25:13 这样的:
新学VC++.NET2008,发现WINDOWS.H里面包含了Winsock.h,然后又查看了WINSOCK.H和WINSOCK2.H产生了很多疑问:
1、我创建MFC静态DLL,工程里没发现WINDOWS.H被包含进来啊,难道自动的?
2、如果是自动的,那我在使用RECV的时候,调用的是WSOCK32.DLL里的函数了?也就是说,想调用WS2_32.DLL中的RECV的话,必须包含WINSOCK2.H到工程?可如果包含了,不会产生冲突吗,系统知道我用的是哪个RECV啊?
3、在WINSOCK.H中RECV是这样的:
int PASCAL FAR recv (
IN SOCKET s,
__out_bcount_part(len, return) __out_data_source(NETWORK) char FAR * buf,
IN int len,
IN int flags);
而在WINSOCK2.H中RECV是这样的:
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
recv(
IN SOCKET s,
__out_bcount_part(len, return) __out_data_source(NETWORK) char FAR * buf,
IN int len,
IN int flags
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
有什么差异呢?
4、如果我想在工程中同时使用WSOCK32.DLL中的函数和WS2_32.DLL里面的函数,应该怎么声明他们呢,又该如何调用呢?
先100分吧,不好分配的时候再加!