如何关闭COM服务?(200分)

  • 主题发起人 主题发起人 liounzhou
  • 开始时间 开始时间
L

liounzhou

Unregistered / Unconfirmed
GUEST, unregistred user!
我创建了一个A.dll的Automation Object,并通过它,调用应用程序B里的一个Automation Object(此时B程序正常启动)。B程序执行完以后,关闭B时,总是会提示:“COM SERVER Warning”,认为有COM对象上的连接没有断掉。请问如何在程序中断开COM对象的连接,从而不出现这个提示框?
 
很简单,给你一段代码。

library Project1;

uses
ComServ,
Project1_TLB in 'Project1_TLB.pas',
Unit1 in 'Unit1.pas' {a: CoClass};

exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;

{$R *.TLB}

{$R *.RES}

begin
ComServer.UIInteractive := False; //这段代码起作用。
end.
 
问题解决了。不过,查了一下帮助,UIInteractive原来是屏蔽掉错误框的属性,要达到的效果是相似。^_^
我还想再问一下,如果我有一个类A,包含一个接口B。当类A实例化以后,接口B也有了实例。我应该如何在A的实例中引用到这个接口B的实例呢?
 
>>如果我有一个类A,包含一个接口B。当类A实例化以后,接口B也有了实例。我应该如何在>>A的实例中引用到这个接口B的实例呢?
不明白什么意思

>>A包含一个接口B
是指A中有一个变量(类型是接口B),还是A实现了接口B
>>当类A实例化以后,接口B也有了实例
接口B的实现类的实例由谁创建的?
 
用类A的 GetInterface(const IID:TGUID;out Obj:Untyped):Boolean;函数就可以了。
 
后退
顶部