多线程传参问题
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>
structMy_thread_par
{
int my_argv;
char **my_argc;
};
DWORD WINAPI Msg_ThreadProc(PVOID pParam)
{
structMy_thread_par *my_par=(struct My_thread_par*)pParam;
printf("%d",my_par->my_par);
return 0;
}
DWORD WINAPI Pro_ThreadProc(PVOID pParam)
{
structMy_thread_par *my_par=(struct My_thread_par*)pParam;
printf("%d",my_par->my_par);
return 0;
}
int main(int argv,char **argc)
{
structMy_thread_par par;
HANDLE m_hmsg,m_hpro;
par.my_argv = argv;
par.my_argc = argc;
m_hmsg=CreateThread(NULL,NULL,Msg_ThreadProc,(LPVOID)&par,NULL,NULL);
m_hpro=CreateThread(NULL,NULL,Pro_ThreadProc,(LPVOID)&par,NULL,NULL);
while(1);
return 0;
}
错误:
“my_par”: 不是“My_thread_par”的成员;
[解决办法]
这个结构中本来就没有my_par这个成员:
struct My_thread_par
{
int my_argv;
char **my_argc;
};
printf("%d",my_par->my_par);//这里当然错。与多线程无关。