DWORD WINAPI MyThread1这个东西的参数到底是什么呀,我见过LPVOID lpParameter还有void * p!
展开全部
DWORD WINAPI MyThread1 (LPVOID lpParam)
{
somestruct* pN = (somestruct*)lpParam; // 将参数转为你的类型
pN->m_number;//这里就是利用你传进来的指针进行一个类型转换,然后用这个指针做一些你想要的事
...
return 0;
}
就是说 你传进来一个指针给这个函数 但是呢这个指针是空类型的 因为空类型的指针可以给任何类型的指针赋值 所以要进行一个强制类型转换 就像上面写的一样 然后你就可以进行操作了
顺便说一下LPVOID这个是一个宏定义 表示的是指向空类型的指针
至于你说的参数是什么意思 那就看你要传什么指针进来了
望采纳哦
{
somestruct* pN = (somestruct*)lpParam; // 将参数转为你的类型
pN->m_number;//这里就是利用你传进来的指针进行一个类型转换,然后用这个指针做一些你想要的事
...
return 0;
}
就是说 你传进来一个指针给这个函数 但是呢这个指针是空类型的 因为空类型的指针可以给任何类型的指针赋值 所以要进行一个强制类型转换 就像上面写的一样 然后你就可以进行操作了
顺便说一下LPVOID这个是一个宏定义 表示的是指向空类型的指针
至于你说的参数是什么意思 那就看你要传什么指针进来了
望采纳哦
追问
这个指针的内容怎么穿进去呀?我看创建指针handle=CreateThread(NULL,0,myThread,NULL,0,&dw);没有机会传进去呀?
追答
先来看看这个函数的参数吧:
handle=CreateThread(
NULL, // 没有安全描述符
0, // 默认线程栈的大小
MyThread, // 线程函数指针
(LPVOID)&n, // 这里就是你要传进MyThread函数的参数n
NULL, // 没有附加属性
NULL // 不需要获得线程id
);
第三个参数就是你声明的那个线程函数指针,然后给这个线程函数传参(createthread函数的第四个参数)&n,所以 现在你的这个函数DWORD WINAPI MyThread1 (LPVOID lpParam)就有了一个参数n
懂了吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询