我创建了一个应用程序,其中我希望线程单独处理 listen-UDP 并使我成为一个缓冲区,但是当我尝试将它传递给线程时它说存在兼容性问题
hThread = CreateThread(
NULL, // default security attributes
0, // use default stack size
start, // thread function name
&buffer, // argument to thread function
0, // use default creation flags
&dwThreadId);
我的启动函数是
void start(buffer_t *buffer)
{
SOCKET s;
struct sockaddr_in server, si_other;
int slen , recv_len;
char buf[BUFLEN];
WSADATA wsa;
}
错误是
1 IntelliSense: argument of type "void (*)(buffer_t *buffer)" is incompatible with parameter of type "LPTHREAD_START_ROUTINE" c:\users\madihamalik\documents\visual studio 2010\projects\udp listener\udp listener\listerner.c 189 12 UDP listener
最佳答案
尝试以下可能对您有帮助的代码..
DWORD start(LPVOID lpdwThreadParam)
{
buffer_t *buffer = (buffer_t *)lpdwThreadParam; //Type cast your argument here
SOCKET s;
struct sockaddr_in server, si_other;
int slen, recv_len;
char buf[BUFLEN];
WSADATA wsa;
...
}
关于c - 在 Windows 中创建线程时不兼容的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30073470/