MIRANDASERVICE pfnService;
pfnService=......;
((int (*)(WPARAM,LPARAM))pfnService)(wParam,lParam);
最主要是看不明白:int (*)(WPARAM,LPARAM)

解决方案 »

  1.   

    这是一个函数指针,返回值是int型,带有两个参数,WPARAM,LPARAM
      

  2.   

    呵呵,pfnService是从希哈表中取出的函数名.所以其实是
    ((int (*)(WPARAM,LPARAM))FUNCTION_NAME)(wParam,lParam);只是不明白函数名前面的是什么?
      

  3.   

    pfnService是一个函数指针;
    int (*)(WPARAM,LPARAM)是做强制类型转换
    相当于:
    typedef int (*pFunc)(WPARAM, LPARAM);
    pFunc p = (pFunc)pfnService;
    p(wParam, lParam);
      

  4.   

    呵呵,明白了,谢谢,但是前面(WPARAM,LPARAM)是什么用
      

  5.   

    呵呵,pfnService是从希哈表中取出的函数名.所以其实是
    ((int (*)(WPARAM,LPARAM))FUNCTION_NAME)(wParam,lParam);只是不明白函数名前面的是什么?
    --------------------------------函数名前是不是返回的int型指针(转换WPARAM,LPARAM)得来的呢?
    不知道对不对?
      

  6.   

    ((int (*)(WPARAM,LPARAM))FUNCTION_NAME)(wParam,lParam);只是不明白函数名前面的是什么?前面相当于是显示的转换但是前面(WPARAM,LPARAM)是什么用是2个参数(相当于int一样)WPARAM,LPARAM只是一种参数类型而已楼主好好看看基础
      

  7.   

    呵呵,其实我已经明白了, captainwh(wh) ( ) 信誉:86 是正确的.
    主要是省去了pFunc这个名,一时变通不了.多谢大家的批评,基础我会加强的