转载:http://www.cnblogs.com/dingjie/archive/2005/07/16/193868.html
使用DLL来为它们的服务器应用程序存放管理窗体会导致DLL拥有自己的Forms.pas文件副本。将将会引起一个不可思议的错误,该错误与Windows的窗口句柄处理有关。Windows窗口句柄处理产生于DLL中——当DLL被卸载时,窗口句柄却不能被操作系统解除参照。下一个穿过队列被发往顶层窗口的消息会导致应用程序出错,这样操作系统就会因为应用程序处于非法状态而将它关闭。使用包代替DLL可以克服这个问题,因为包引用了主应用程序的Forms.pas副本,因此消息队列能够成功地传送到应用程序。