定义了一个struct 
struct thread{
  CString date ;
 
};
 还一个线程函数 UINT  CProductSellView::ThreadProc(LPVOID   lpParameter) 

   thread * tts=(thread  *)lpParameter;
   AfxMessageBox(tts->date);
   return   0; 
} 在调用的时候如下 : thread * tt=new thread;
   tt->date="a";
   AfxBeginThread(ThreadProc,&tt,0,0,0,NULL);
 
结果messageBox()弹出来的是乱码
  假如把 那个结构提 设置成全局的 就没问题,在事件函数里  声明局部的 就会出现乱码. 为什么呢? 高手帮忙解答下 

解决方案 »

  1.   

    thread * tt=new thread;
       tt->date="a";
       AfxBeginThread(ThreadProc,&tt,0,0,0,NULL);
    =========
    tt本身就是指针,调用时用&tt,传过去的就是指针的地址。那么线程函数中的
    thread * tts=(thread  *)lpParameter;就有问题了。
    在调用时直接用:AfxBeginThread(ThreadProc,tt,0,0,0,NULL);
      

  2.   

    AfxBeginThread(ThreadProc,(LPVOID)tt,0,0,0,NULL);
      

  3.   

    UINT  CProductSellView::ThreadProc(LPVOID   lpParameter) 

       thread * tts=* ((thread  *)lpParameter);
       AfxMessageBox(tts->date);
       return   0;