哪为朋友能推荐一本对DLL中如何使用回调函数阐述比较详细点的书给小弟?
什么地方能下载到这样的书?谢谢,不胜感激。

解决方案 »

  1.   

    // DLL 中的处理
    //先声明一个你需要的函数类型,如:
    type
        TCallbackProc=procedure(AParam:LongInt);stdcall;//声明一个变量用于存放回调函数的地址
    var
       YourCallbackProc:TCallbackProc;// 声明一个用于设置回调函数的过程,此过程应当被  exports
    procedure SetCallbackProc(ACallbackProc:TCallBackProc);stdcall;//实现 SetCallbackProc
    procedure SetCallbackProc(ACallbackProc:TCallBackProc);
    begin
      YourCallbackProc:=@ACallbackProc; // 保存主程序传进来的回调函数指针
    end;// 在需要调用函数的  On 事件中,写:
    if Assigned(YourCallbackProc) then
      YourCallbackProc(...); //调用回调函数
    // 下面在主程序中使用 DLL 及回调函数
    // 声明一个函数用于回调
    void YourCallbackProc(int AParam); //此函数即回调函数,形式必须与 TCallbackProc 一致
    {
    // 你的程序
    }// 为 DLL 设置回调函数
    void main()
    {
      SetCallback(YourCallbackProc); // 调用 DLL 的 设置过程,这样,当 DLL 中产生 On 事件时,会调用 YourCallbackProc
    }