船
船歌
Unregistered / Unconfirmed
GUEST, unregistred user!
COM高手请进!
应用程序中,加入RemoteDataModule,参数如下:Multiple Instance,Neutral的线程模式,Windows2000 高级服务版的环境,SQL Server 2000企业版。
在远程数据模块的OnCreate的事件中,把远程数据模块的自身(即Self)加到全局的一个TObjectList中,在OnDestroy事件中,把远程数据模块的自身(即Self)从全局的TObjectList中删除。这样,从TObjectList对象中,可以取得所有的远程数据模块的信息。现在问题在于,如果在应用程序中,把所有的TObjectList对象都Free掉,COM资源并不得有释放,表现为:关闭应用程序时,跳出一个对话框说:“这个程序依然有活动的COM对象,一个或更多的客户引用这些对象,所以手工关闭可能导至这个客户程序运行失败。确信要关闭吗?”如果客户端自己关闭,引起对象的数据模块被Destroy,则没有这个现象。
怎么回事的?
应用程序中,加入RemoteDataModule,参数如下:Multiple Instance,Neutral的线程模式,Windows2000 高级服务版的环境,SQL Server 2000企业版。
在远程数据模块的OnCreate的事件中,把远程数据模块的自身(即Self)加到全局的一个TObjectList中,在OnDestroy事件中,把远程数据模块的自身(即Self)从全局的TObjectList中删除。这样,从TObjectList对象中,可以取得所有的远程数据模块的信息。现在问题在于,如果在应用程序中,把所有的TObjectList对象都Free掉,COM资源并不得有释放,表现为:关闭应用程序时,跳出一个对话框说:“这个程序依然有活动的COM对象,一个或更多的客户引用这些对象,所以手工关闭可能导至这个客户程序运行失败。确信要关闭吗?”如果客户端自己关闭,引起对象的数据模块被Destroy,则没有这个现象。
怎么回事的?