在delphi中,如果要创建COM对象,可以通过两种方式来实现,
第一个是早期绑定(bind),例如
uses
MSScriptControl_TLB; // MS Script Control
var
obj: IScriptControl;
begin
obj := CreateOleObject('ScriptControl') as IScriptControl;
..
..
obj.ExecuteStatement('Msgbox 1')
end;
或者,您可以按照以下方式进行(后期绑定(bind))
var
obj: OleVariant;
begin
obj := CreateOleObject('ScriptControl') ;
obj.ExecuteStatement('Msgbox 1');
end;
哪一个在性能方面更好?
最佳答案
Which one is better in terms of performance?
早类比晚类快。后期绑定(bind)方法调度涉及以下内容:
- 从名称查找入口点。
- 组装要传递给方法的参数,并执行任何必要的类型转换。
- 调用函数。
- 解码任何输出参数和返回值。
对于早期绑定(bind)调度来说,其中许多步骤根本不存在。
当然,如果该函数做了任何重要的事情,则方法分派(dispatch)期间的性能差异很可能无法检测到。
关于delphi - Delphi COM 对象中的早期绑定(bind)和后期绑定(bind)在性能方面哪个更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17383304/