请问下关于 函数指针参数传递的问题别人的SDK。开发包里面有个 这养的函数 void aaaaaa(int i,int b,void (CALLBACK * srcbuf)(long la,long lb));我现在要把这些导出的函数都封装起来void bbbbb(int i,int b,void (CALLBACK * srcbuf)(long la,long lb))
{
    aaaaaa(i,b,)         第三个参数怎么传递呢?  
}

解决方案 »

  1.   

    你实现函数:
    void OtherBuf(long la, long lb)
    {
        //do something...
    }
    void bbbbb(int i,int b,void (CALLBACK * srcbuf)(long la,long lb))
    {
       aaaaaa(i, b, OtherBuf);  
    }
      

  2.   

    我封装而已,不是 to do something  我不实现,由上层实现,我知道怎么用,但是怎么封装?我不想改动任何东西!
      

  3.   

    void aaaaaa(int i,int b,void (CALLBACK * srcbuf)(long la,long lb));
    这样就可以作为导出的函数了
      

  4.   

    void aaaaaa(int i,int b,void (CALLBACK * srcbuf)(long la,long lb));
    其中的Callback函数由调用者实现吧,如果是aaaaaa这个模组实现的话,那导出的Api就没有并要需要这个参数了,内部可能会导出这样的函数:
    void aaaaaa(int i, int b);
    其中他得实现为:
    void aaaaa(int i, int b)
    {
       call _aaaaaa(i, b, _callbackfunc);
    }
      

  5.   

    如果什么都不改变,仅仅改变导出符号名字。
    使用 .DEF 文件。
    修改导出名字。
      

  6.   


    void bbbbb(int i,int b,void (CALLBACK * srcbuf)(long la,long lb))
    {
      aaaaaa(i,b,srcbuf)   我直接这样传递就可以了吧?
    }
      

  7.   

    形参如为函数指针,实参可为函数指针或函数名。
    直接传srcbuf即可。