日记:如何在MFC中使用Winsock2
目前使用的Visual Studio 6.0的MFC4.2使用的是Winsock1.1,听说MFC7.1中使用的也是。
最近,为了使用WSAIoctl,需要把使用Winsock2,不过不能直接在项目中Include Winsock2.h,因为Winsock2.h是Winsock.h的一个超集,直接添加会与已包含的winsock.h发生命名冲突。
在网上参考了一些相关的资料,最后将MFC中引用的winsock1.1替换为了winsock2。经测试可行,而且应该没有什么副作用,XP及之后的Windows都支持Winsock2。
替换方法:
MFC通过AFXSOCK.H来引用Winsock1.1并提供了一些面向对象的封装。只需将其中的引用替换即可。
将AFXSOCK.H 23行的
#include <winsock.h>
替换为:
#include <winsock2.h>
另将其中的
#pragma comment(lib, "wsock32.lib")
替换为:
#pragma comment(lib, "Ws2_32.lib")