您的位置:首页 > 其它

WINSOCK.H WINSOCK2.H的区别及函数重复定义的解决方法

2015-10-29 14:18 323 查看
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")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: