WSARecv出现异常错误?谢谢!
//头文件中
typedef struct _PER_IO_DATA
{
WSAOVERLAPPED ol;
char *buf; // Buffer
int buflen; // Length of the buffer
int operation; // Type of operation issued
#define OP_ACCEPT 0 // AcceptEx
#define OP_READ 1 // WSARecv/WSARecvFrom
#define OP_WRITE 2 // WSASend/WSASendTo
} PER_IO_DATA, * LPPER_IO_DATA;
//源文件中
WSABUF wbuf;
Flags = 0;
WSAEVENT Event;
char buffer[4096];
char buffer[4096];
lpPerIoData = new _PER_IO_DATA;
ZeroMemory(&(lpPerIoData->ol), sizeof(OVERLAPPED));
//运行到这里时debug看到lpPerIoData->ol的对应项显示:
//"CXX0030: Error: expression cannot be evaluated"
Event = WSACreateEvent();
lpPerIoData->ol.hEvent = Event;
lpPerIoData->buflen=4096;
memcpy(buffer, &"", sizeof(buffer));
lpPerIoData->buf=buffer;
wbuf.len = lpPerIoData->buflen;
wbuf.buf = lpPerIoData->buf;
lpPerIoData->operation = OP_READ;
i = WSARecv(Accept,
&wbuf,
1,
&RecvBytes,
&Flags,
&(lpPerIoData->ol),
wbuf.len = lpPerIoData->buflen;
NULL); //此处出现了异常错误!?
delete lpPerIoData;
/////////////////////////////////////////////////////////////////
是不是上面的lpPerIoData->ol导致的异常错误呢?
怎么解决呢?
小弟调了两天了!
万分感谢!