主程序调用一个DLL里面的函数,这个DLL的函数里面又要用到主程序里的函数,这时候得用回调函数吧?不过我不知道该怎么用,看msdn也说不清楚,请达人指点。

解决方案 »

  1.   

    你可以传一个函数指针到dll中, 然后在需要回调的时候通过函数指针调用.
      

  2.   

    OnTimer就是一个回调函数
    不是直接在程序里面调用
      

  3.   

    回调函数就是函数指针,不一定是系统调用的才叫回调函数你在调用dll中的那个函数时,传入一个函数指针参数就可以了
      

  4.   

    可以通过SendMessage实现,或者通过公共基类实现
      

  5.   

    用函数指针传递就行了
    ——谁说回调函数只能系统使用了
    typedef  int(__stdcall*_lpMyProc)(char pa,void*pb);int oneproc(char pa,void*pb)
    {
      return 100;
    }_lpMyProc my;
    my=(_lpMyProc)oneproc;然后把这个 my传出去,DLL中定义也定义一个函数指针,接受使用,使用方式如下
    int getval=my('a',NULL);
      

  6.   

    the same to AscendStone可以先定義一個函數指針類型typedef  int(__stdcall*_lpMyProc)(char pa,void*pb);然後把這個指針變量傳入dll相應方法中的變量裏去參數類型就是你聲明的就可以了dll中int __stdcall MyProc(_lpMyProc proc)在主函數中
    _lpMyProc my=(_lpMyProc)oneproc;
    MyProc(m);這樣就把函數指針傳導dll中了。