void CCallManager::SendPackage(byte* data){}和void SendPackage(byte* data){}我将SendPackage作为参数调用InjectThread函数的时候,第一种情况会提示function call missing argument list,第二种成功。InjectThread(void *pFun){}调用语句如下:
InjectThread(SendPackage);

解决方案 »

  1.   

    成员函数的第一个隐含参数是this指针。
      

  2.   

    void CCallManager::SendPackage(byte* data){} 
    这么写出来的,都看不出来是不是static函数,而static和非static差别很大的。
      

  3.   

    这与参数没关系吧void * pFun=SendPackage;第一种情况调用这句同样会有问题
      

  4.   

    前面加上类名::是类成员的完整写法,在类内部使用时可以省略前缀,在类外部使用时,如果访问动态成员,必须给出对象或对象指针,如果访问静态成员,必须要加前缀。
    InjectThread(void *pFun){}如果写在类外部,则不是类的成员函数,所以调用时不加前缀。
      

  5.   

    void CCallManager::SendPackage(byte* data){} typedef   void (CCallManager::*pFunc)(byte* data);
    pFunc pSendPackage = NULL;