动态连接库问题
用C++写了个动态连接库,给VB用,VB中用了一个线程,线程中调用DLL中一个RECV(封装WINSOCK而来),阻塞在那,但退出时,程序出错.去掉调用DLL那句后就没事了.其它的导出函数都没问题,就阻塞线程有问题.
函数原型
int __stdcall neRecv(int rSocket, char buff[])
{
char buffer[BUFFER_SIZE_MAX]={0};
struct sockaddr_in Client;
int l = sizeof(Client);
{
if(recvfrom(rSocket, buffer, BUFFER_SIZE_MAX, 0, (struct sockaddr*)&Client, &l) != SOCKET_ERROR)
{
return 0;
}
}
}
return -1;
}
VB线程
dim Buffer as String
Public Sub recvThread(s As Long)'s是socket
nCount = 0
While (1)
nCount = nCount + 1
Dim num As Long
num = neRecv(s, Buffer)
If num = -1 Then Exit Sub
Wend
End Sub