解决Winsock2.h和afxsock.h定义冲突的办法
如果我们在工程中使用了afxsock.h,但在其它的地方又加了些 使用winsock2.h,哈哈,VC会告诉你一大堆错误,大意就是有定义重复,该怎么解决?
由于MFC的SOCKET类使用的是Winsock1.1,而Winsock2.h是2.0的版本,两个版本中的一些定义就会出现冲突,解决的方式就是在stdafx.h中先定义winsock2.h,然后在定义afxsock.h
使用时还需要加载库文件:#pragma comment(lib, "ws2_32.lib")
#if !defined(AFX_STDAFX_H__57EF9120_2A16_4B54_9878_0A0B41C2B505__INCLUDED_) #define AFX_STDAFX_H__57EF9120_2A16_4B54_9878_0A0B41C2B505__INCLUDED_
#if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afxwin.h> // MFC core and standard components #include <afxext.h> // MFC extensions #include <afxdisp.h> // MFC Automation classes #include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls #ifndef _AFX_NO_AFXCMN_SUPPORT #include <afxcmn.h> // MFC support for Windows Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT
#include <Winsock2.h> #include <afxsock.h> // MFC socket extensions
//{{AFX_Insert_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__57EF9120_2A16_4B54_9878_0A0B41C2B505__INCLUDED_)