日记:如何在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")

原文地址:https://www.cnblogs.com/yedaoq/p/1809616.html