WSAStartup() 可以在单个进程中多次调用,只要 WinSock dll 支持请求的版本并且对 WSAStartup() 和 WSACleanup() 的调用是平衡的。除此之外,允许使用不同 WinSock 版本的多个套接字。(参见这篇文章:是否可以判断 WSAStartup 是否已在进程中调用?)
那么,这些不同的 WinSock 版本是如何共存的呢?
例如,如果我请求为我的应用程序使用特定的 WinSock 版本,并且我的应用程序还加载了恰好请求使用不同版本的第三方 dll,该怎么办?使用什么版本,何时使用?