在Delphi 7中,int64s是签名的,如果我尝试声明
一个大于$8000000000000000的十六进制常量(例如,什么是真正的uint64)我得到
一个错误.你能告诉一些
解决方法吗?
您可以像这样制作变体记录
type muint64 = record
case boolean of
true: (i64 : int64);
false:(lo32,hi32: cardinal);
end;
现在你可以使用红衣主教用无符号数据填充你的uint64.
另一种选择是使用这样的代码:
const almostmaxint64 = $800000045000000;
var muint64: int64;
begin
muint64:= almostmaxint64;
muint64:= muint64 shl 1;
end