createThread 的问题
我用DWORD WINAPI workThread(LPVOID lParam)定义了一个线程,可在createthread时提示无法将参数3从DWORD(LPVOID)转化为LPTHREAD_START_ROUTINE,郁闷,高不明白!!
我的createthread函数 为 hThread = CreateThread(NULL,0,workThread,&dwThrdParam,0,&threadID);
请给于指点!!
问题点数:20、回复次数:6Top
1 楼keiy()回复于 2005-06-14 11:50:41 得分 10
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to security attributes
DWORD dwStackSize, // initial thread stack size
LPTHREAD_START_ROUTINE lpStartAddress, // pointer to thread function
LPVOID lpParameter, // argument for new thread
DWORD dwCreationFlags, // creation flags
LPDWORD lpThreadId // pointer to receive thread ID
);
你的两个参数调错了
hThread = CreateThread(NULL,0,workThread,NULL,&dwThrdParam,&threadID);
Top
2 楼keiy()回复于 2005-06-14 11:57:24 得分 0
你的可以啊,是我看错了Top
3 楼younggle(洋溢)回复于 2005-06-14 12:00:27 得分 5
把
hThread = CreateThread(NULL,0,workThread,&dwThrdParam,0,&threadID);
改为
hThread = CreateThread(NULL,0,
(LPTHREAD_START_ROUTINE)workThread,
&dwThrdParam,0,&threadID);
就可以了。
Top
4 楼keiy()回复于 2005-06-14 12:00:53 得分 0
不行的话可以强制转换试试
hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)workThread,&dwThrdParam,0,&threadID);
Top
5 楼orbit(走了走了)回复于 2005-06-14 12:03:15 得分 5
hThread = CreateThread(NULL,0,workThread,&dwThrdParam,0,&threadID);
没有问题,用LPTHREAD_START_ROUTINE强制转换
hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE )workThread,&dwThrdParam,0,&threadID);
Top
6 楼coolsnow_(CoolSnow)回复于 2005-06-15 13:54:45 得分 0
强制转换可以!
hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)workThread,&dwThrdParam,0,&threadID);
Top




