首先,我在理解一下一篇文章中的内容是遇到了困难,
1、UINT SendDataThread(LPVOID lpParam)
   这个线程函数应该放在什么地方?CTzg004Dlg.cpp文件中?并且参数lpParam是干什么的?
2、CTzg004Dlg *pDlg=(CTzg004Dlg *)lpParam;
   这个强制转化的意义在于什么?如果m_strFileName,m_iDataPort1是CTzg004Dlg.h的私有成员变量,那么在编译时会不会出错,为什么?这两个应该是什么性质的?
  暂时就先这么多,寻求帮助

解决方案 »

  1.   

    这是典型的多线程编程的参数传递方式,lpParam是你创建线程时传进来的CTzg004Dlg类型指针,CTzg004Dlg *pDlg=(CTzg004Dlg *)lpParam;则在线程函数内转换为CTzg004Dlg类型指针,以任意类型指针的方式完成参数传递,进行数据交互。
      

  2.   

    1 全局或静态
    2 lpParam是你要传到线程里的参数。
      

  3.   

    Lparam是传递的参,LPVOID是指向void的指针,任何类型,结构都可以用此参数函数应该为全局的或静态的若想封装到一个类里,应用static UINT Proc(LPVoid lParam),并且要用public私有的变量若作为参数传到线程里......相当于就把变量放到了堆里....访问不会出错的......