【问题标题】:Is there any way to use getaddrinfo() and freeaddrinfo() and still be the program compatible with legacy versions of Windows?有什么方法可以使用 getaddrinfo() 和 freeaddrinfo() 并且仍然是与旧版 Windows 兼容的程序?
【发布时间】:2010-03-25 20:54:12
【问题描述】:
在 Winsock2 库中 getaddrinfo() 和 freeaddrinfo() 仅在 Windows XP 及更高版本中添加。我知道如何在旧系统中替换它们,但取决于 Windows 版本的有条件使用将无济于事。
应用程序不会在 9x 中启动并显示一条消息,指出它已链接到 WS2_32.dll 中缺少的导出。
我正在使用 MinGW 编译和链接代码,并希望继续使用它。也许我自己写那些函数?
非常感谢您所做的一切。
【问题讨论】:
标签:
c
windows
sockets
legacy
winsock2
【解决方案1】:
您可以使用LoadLibrary 和GetProcAddress 来(尝试)获取getaddrinfo 和freeaddrinfo 的地址,然后通过指针调用它们,如果GetProcAddress 返回一个非NULL 指针。