以下代码触发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异常。

1°)dwread可以返回什么来触发此异常?

2°)如何控制?

最佳答案

零我猜:

{$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;

关于delphi - 在Delphi上的EIntOverflow,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10426971/

10-14 08:41