1

次のコードは例外をトリガーしEIntOverflowます。私ではなく、ユーザーの PC で発生するため、デバッグできません。

var

  dwread, iBytesPerMFTRecord : cardinal;

  pc : PChar;

begin

////
// some code here
////

Readfile(hDevice, PChar(pc)^, 100, dwread, nil);


for n:=0 to dwread div iBytesPerMFTRecord -1 do   // `EIntOverflow` exception

Readfile は、次の行で例外dwreadをトリガーする 奇妙なものを返しているようです。EIntOverflow

dwread1°)この例外をトリガーするために何を返すことができますか?

2°) それを制御する方法は?

4

2 に答える 2

4

ゼロだと思います:

{$Q+}
procedure TForm1.Button2Click(Sender: TObject);
var
  dw: Cardinal;
  I: Integer;

begin
  dw:= 0;
  I:= dw - 1;   // raised exception class EIntOverflow with message 'Integer overflow'.
  ShowMessage(IntToStr(I));
end;
于 2012-05-03T08:00:28.733 に答える