传递 TBitmap 句柄到 Dll 函数中出现的问题

                            
我传递一个   HBitmap   到   Dll   函数中,   
  为了接收它,我定义了一个   TBitmap   变量,但是在释放该变量的时候出现了一个问题  
   
  函数如下:  
   
  function   PicView(hBmp:   HBitMap):longint;stdcall;  
  var  
      PicViewFrm:TPicViewFrm;  
      bmp:TBitmap;  
  begin  
      PicViewFrm:=TPicViewFrm.Create(Application);  
      bmp:=TBitmap.Create;  
      try  
          bmp.Handle:=hBmp;  
          PicViewFrm.SetPic(bmp);  
          PicViewFrm.ShowModal;  
      finally  
          bmp.Dormant;  
          bmp.FreeImage;  
          bmp.ReleaseHandle;  
          bmp.Free;  
          PicViewFrm.Free;  
      end;  
      result:=0;  
  end;  
   
  一旦执行了   bmp.Free   后,原来资源中的那个   Bitmap   也被释放掉了,这不是我希望的啊  
  可是如果不释放这个变量,会不会存在内存泄漏呢?

查看回复