还有就是不知道dll是不是被一个程序一调用就会一址在内存中至到这个程序退出,这个dll才会退出内存?

解决方案 »

  1.   

    不错,只要你动态创建TTIMER,DLL退出前释放就行了
      

  2.   

    在DLL中写一个接口,
    其中有:
    var
      timer1: TTimer;
    begin
      try
        timer1:= TTimer.create(Self);
        ..
        ..
      finally
        timer1.Free;
      end;
    end;
      

  3.   

    BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpvReserved)
    {
       static TTIMER* pTimer;
       switch(dwReason)
         {
          case DLL_PROCESS_ATTACH:
          pTimer = new TTIMER;
          break;
          case DLL_PROCESS_DETTACH:
          delete pTimer;
          break;
          default:
          break;
          }
      return TRUE;
    }