传入字符串参数没有错误
UINT ThreadSubProc(LPVOID ThreadParam)
{
   char *t=(char *)ThreadParam;
}
怎么传入整形的时候就有问题,loop不可访问
int * loop= (int * )ThreadParam;
int begin=*loop;//会报错

解决方案 »

  1.   

    干脆就传整数:
    int begin = (int)ThreadParam;开线程的时候这样:
    int i = 5;
    AfxBeginThrea(……, (void *)i, ……);
      

  2.   

    int temp=10;
    AfxBeginThread(ThreadSubProc,&temp);
    UINT ThreadSubProc(LPVOID ThreadParam)
    {
       int *p=(int *)ThreadParam;
       int a;
       a=*p;
    }
      

  3.   

    int * loop= (int * )ThreadParam;
    int begin=*loop;//会报错
    把ThreadParam强制转换成指针,如果这个整数是随意传入的话,很容易访问越界int a = 5;AfxBeginThrread(ThreadPorc, a)如果int * loop= (int * )ThreadParam;
    int begin=*loop;//会报错此时loop的值为5,*loop访问0x00000005,访问越界,应该传递&a
      

  4.   

    将int型强制转换成void的指针,在线程函数中定义一个int型变量,然后将传入线程参数的指针类变量再强制轮换成int就可以了,这里就不用考虑到指针地址的生命期的时间!!