6

在delphi中,如果你想创建COM对象,你可以通过两种方式来实现,

第一个是早期绑定,例如,

uses
  MSScriptControl_TLB; // MS Script Control

var
  obj: IScriptControl;
begin
  obj := CreateOleObject('ScriptControl') as IScriptControl;
  .. 
  ..
  obj.ExecuteStatement('Msgbox 1') 
end;

或者,您可以按以下方式进行(后期绑定)

var
  obj: OleVariant;

begin
  obj := CreateOleObject('ScriptControl') ;
  obj.ExecuteStatement('Msgbox 1');
end;

哪一个在性能方面更好?

4

1 回答 1

11

哪一个在性能方面更好?

早绑定比晚绑定快。后期绑定方法分派涉及以下内容:

  1. 从名称中查找入口点。
  2. 组装要传递给方法的参数,并执行任何必要的类型转换。
  3. 调用函数。
  4. 解组任何输出参数和返回值。

对于早期绑定调度,其中许多步骤根本不存在。

当然,如果该函数做了任何重要的事情,那么在方法分派期间的不同性能很可能是无法检测到的。

于 2013-06-29T18:27:14.320 回答