インターフェイス ICar をサポートし、TInterfacedObject から派生したクラス TCar があるとします。
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 がクリーン マシンにインストールされましたが、アンチウイルスはインストールされていません。