已经下载更新了最新的sdk 但是编译文件时 提示:
error C2065: 'ConnectEx' : undeclared identifier按msdn上说 需要包含 mswsock.h 文件,并且需要在winxp 或者win server 2003以上
我下载了最新的 win2003 server sdk r2 包 , 查阅了mssock.h文件 但是仍然看不到ConnectEx的声明????????? 奇怪的是找到一个这样的声明:
typedef
BOOL
(PASCAL FAR * LPFN_DISCONNECTEX) (
IN SOCKET s,
IN LPOVERLAPPED lpOverlapped,
IN DWORD dwFlags,
IN DWORD dwReserved
);
error C2065: 'ConnectEx' : undeclared identifier按msdn上说 需要包含 mswsock.h 文件,并且需要在winxp 或者win server 2003以上
我下载了最新的 win2003 server sdk r2 包 , 查阅了mssock.h文件 但是仍然看不到ConnectEx的声明????????? 奇怪的是找到一个这样的声明:
typedef
BOOL
(PASCAL FAR * LPFN_DISCONNECTEX) (
IN SOCKET s,
IN LPOVERLAPPED lpOverlapped,
IN DWORD dwFlags,
IN DWORD dwReserved
);
BOOL
(PASCAL FAR * LPFN_CONNECTEX) (
IN SOCKET s,
IN const struct sockaddr FAR *name,
IN int namelen,
IN PVOID lpSendBuffer OPTIONAL,
IN DWORD dwSendDataLength,
OUT LPDWORD lpdwBytesSent,
IN LPOVERLAPPED lpOverlapped
);
是这个
GUID GuidConnectEx = WSAID_CONNECTEX; // The GuidOnce the socket is created, we have to bind it to a port and interface. While using 'ConnectEx()', binding has to be done explicitly because the main purpose of this API other than allowing overlapped calls is, performance.dwErr = WSAIoctl(cliSock,
SIO_GET_EXTENSION_FUNCTION_POINTER,
&GuidConnectEx,
sizeof(GuidConnectEx),
&lpfnConnectEx,
sizeof(lpfnConnectEx),
&dwBytes,
NULL,
NULL);
if(dwErr == SOCKET_ERROR)
// Handle the error using 'WSAGetLastError()'From: http://www.codeguru.com/forum/archive/index.php/t-312668.htmlhttp://www.gamedev.net/community/forums/topic.asp?topic_id=323809
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.
This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention
那位高人指点迷津啊
有明白的敬请留言指教博客:
http://hi.baidu.com/gfsaimons/blog/item/ffd4ddeddb3a38db2e2e21a7.html