当用户关闭Dll中的无模式窗体时,发送自定义信息给主程序:<br>procedure TForm1.FormDestroy(Sender: TObject);<br>begin<br> SendMessage(hMainHandle, WM_USER + 101, 0, 0);<br>end;<br>在主程序中处理该自定义信息:<br>procedure DLLFormCloseMsg(var Message: TMessage); message WM_USER+101;<br>但有个问题:不能在该事件中释放动态库,因为这时窗口资源还没有释放完成,我认为可以在一个Timer中释放动态库资源:<br>procedure TForm1.DLLFormCloseMsg(var Message: TMessage);<br>begin<br> Timer1.Enabled := True;<br>end;<br><br>procedure TForm1.Timer1Timer(Sender: TObject);<br>begin<br> Timer1.Enabled := False;<br> FreeLibrary(hDll);<br>end;