老板要我把一个void CAutoPlateDlg::imageProc(void)函数转化为线程函数,从书上了解到线程序函数必须是静态函数或者是全局函数,所以我把函数定义改成了static CAutoPlateDlg::imageProc(LPVOID pParm).声明为友元函数,结果发现原来的好多类里的变量和这个函数都不能够调用,请问该怎么办?在线等!

解决方案 »

  1.   

    我是这样用的比如有一个全局变量 m_XXX;
    线成的全局函数定义如下
    UINT BeginSplitThread(LPVOID pParam)
    {
      CAutoPlateDlg* patuo = (CAutoPlateDlg*)pParam;
      //使用m_XXX
      patuo->m_XXX = XXXX;}
      

  2.   

    那如果这个.cpp文件中其他函数要用到这个函数,怎么调用这个函数!
      

  3.   

    那就把功能单写成一个函数CAutoPlateDlg::imageProc()
    然后再线程里只调用imageProc();
    UINT BeginSplitThread(LPVOID pParam)
    {
      CAutoPlateDlg* patuo = (CAutoPlateDlg*)pParam;
      patuo->imageProc();
    }