问题:之前写服务器端接受服务的时候,用的都是MFC 版本的,<afx.h> (ps,如果是stdafx那个,会把服务所需的声明给略去),然后今天用上了windows.h 结果一堆错误,显示socket函数有多个链接项,有重定义错误。
原因分析:
主要原因是因为<windows.h>中包含了<winsock.h>头文件,由于其版本的不同,导致出现上述的错误。
问题解决:
1, 在#include<windows.h>之前#include <winsock2.h>问题就可以解决。
2,#define WIN32_LEAN_AND_MEAN 或者加一个精简宏。
!!!!对了,之前服务程序使用mfc库stdafx,没有包含服务所需的定义,然后就把 afx放到前面就好使了。
!!!!mfx的头文件里有windows.h的引用,所以如果两个同时在,又会出现错误