C++ Windows API:对DisconnectEx的未定义引用

C++ Windows API:对DisconnectEx的未定义引用,c++,c,winapi,mingw,winsock,C++,C,Winapi,Mingw,Winsock,我正在开发一个使用windows套接字的应用程序。我的socket类有一个名为Disconnect的方法,该方法使用DisconnectEx,但在链接时出现以下错误: undefined reference to `DisconnectEx@16' 我正在使用MinGW,并将我的应用程序与以下LIB链接: -lws2_32 -lwsock32 -lmswsock msdn上说此函数所需的最低版本是windowsxp或windowsserver2003,所以我用0x0502定义了WINVER,

我正在开发一个使用windows套接字的应用程序。我的socket类有一个名为Disconnect的方法,该方法使用DisconnectEx,但在链接时出现以下错误:

undefined reference to `DisconnectEx@16'
我正在使用MinGW,并将我的应用程序与以下LIB链接:

-lws2_32 -lwsock32 -lmswsock
msdn上说此函数所需的最低版本是windowsxp或windowsserver2003,所以我用0x0502定义了WINVER,但仍然得到相同的错误

我错过了什么


提前谢谢

您显然遗漏了MSDN文档中的以下注释:

注意:断开连接函数的函数指针必须为 在运行时通过调用
WSAIoctl
函数 指定了
SIO\u GET\u EXTENSION\u函数\u指针
操作码。输入 传递到
WSAIoctl
函数的缓冲区必须包含
WSAID\u DISCONNECTEX
,一个全局唯一标识符(GUID),其值 识别
DisconnectEx
扩展功能。在成功方面
WSAIoctl
函数返回的输出包含指向
DisconnectEx
功能。中定义了
WSAID\u DISCONNECTEX
GUID
Mswsock.h
头文件


请注意,
DisconnectEx()
的MSDN文档没有在“需求”部分中指定库。这意味着您必须在运行时通过动态加载此函数才能获得函数指针。

是的,我的错,我错过了。。。凌晨三点半的时候很难睁大眼睛呵呵。谢谢。@Leandro F.Vaz:没问题。这只是一个友好的提醒,提醒您仔细阅读文档。:-)