在Windows中创建线程时不兼容的类型

我创建了一个应用程序,其中我想要一个线程分别处理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); 

我的开始function是

 void start(buffer_t *buffer) { SOCKET s; struct sockaddr_in server, si_other; int slen , recv_len; char buf[BUFLEN]; WSADATA wsa; } 

而错误是

1 IntelliSense:类型“void(*)(buffer_t * buffer)”的参数与“LPTHREAD_START_ROUTINE”类型的参数不兼容c:\ users \ madihamalik \ documents \ visual studio 2010 \ projects \ udp listener \ udp listener \ listerner.c 189 12 UDP监听器

尝试以下可能对您有帮助的代码..

 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; ... }