假设我有一个类 TCar,它支持接口 ICar,并且是从 TInterfacedObject 派生的。
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
type
ICar = interface
['{EF3294ED-7D3B-4B5D-8E10-FA9E406477D2}']
procedure Start;
end;
TCar = class(TInterfacedObject, ICar)
private
procedure Start;
end;
procedure TCar.Start;
begin
WriteLn('Started!');
end;
var
car: ICar;
begin
try
car := TCar.Create;
car.Start;
{ TODO -oUser -cConsole Main : Insert code here }
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
当我在 32 位模式下调试上面的代码时,我可以进入 TCar 类的方法“Start”,此外,当我将鼠标悬停在汽车变量上时,我看到它是“TCar(address) as ICar”但是当我尝试在 64 位模式下调试此代码我无法进入方法“Start”(调试执行只是传递到方法调用下方的下一行而无需介入)并且当我移动时我看到“Pointer(address) as ICar”鼠标悬停在汽车变量上。我究竟做错了什么?能够介入方法在我的项目中非常重要。
最近在干净的机器上安装了 Delphi XE8,并且没有安装防病毒软件。