1. 版本区别
winsock2.h 版本2.0
winsock.h 版本1.1
说白了就是winsock2.h是winsock.h的升级版,用来替换winsock.h
2. 重复定义
因为是两个不同的版本,因此有非常多相同的定义
解决方法:
1)windows.h在winsock2.h的前面
**该办法影响其他库文件
-
#define WIN32_LEAN_AND_MEAN //关键
-
#include <windows.h>
-
#include <winsock2.h>
-
#pragma comment(lib, "ws2_32.lib")
2)windows.h在winsock2.h的前面,手动定义_WINSOCKAPI_
winsock2.h定义了_WINSOCKAPI_,阻止编译器去处理后面的winsock.h
-
#pragma push_macro("_WINSOCKAPI_")
-
#ifndef _WINSOCKAPI_
-
#define _WINSOCKAPI_
-
#endif
-
-
#include <windows.h>
-
-
#pragma pop_macro("_WINSOCKAPI_")
3)windows.h在winsock2.h的后面
winsock2.h定义了_WINSOCKAPI_,阻止编译器去处理后面的winsock.h
-
#include <winsock2.h>
-
#include <windows.h>
-
#pragma comment(lib, "ws2_32.lib")
阅读(12510) | 评论(0) | 转发(0) |