gpt4 book ai didi

Delphi XE2 - System.Str 更改/损坏?

转载 作者:行者123 更新时间:2023-12-03 19:04:52 33 4
gpt4 key购买 nike

Delphi XE2 中的 System.Str 发生了一些变化。以下程序:

procedure someProcedure;
var
E:double;
outString:string;
begin
E:=-1.7E+308;
Str(E:i:j, outString);
end;

引发访问冲突

(异常类 $C0000005,0x00407318 处的访问冲突:读取地址 0x30303028)

在 Delphi XE2 中,'i' 和 'j' 是任何整数。同样的代码在 Delphi 2010 中运行良好并返回 outString = '-1.7E+0308'。一些 TurboPower Orpheus 组件中使用了类似的代码,它会导致整个 IDE 因 BEX 错误而崩溃。

这是在 Win7 64 位中。有任何想法吗?

编辑:额外信息

这似乎只发生在大的负数上。 Str 似乎会生成长字符串,当它们超过约 130 个字符时会中断。

注意:仅使用宽度时这不会中断(其中 i = 一些宽度)
procedure someProcedure;
var
E:double;
outString:string;
begin
E:=-1.7E+308;
Str(E:i, outString);
end;

最佳答案

这显然是处理大量负数的错误。正数处理得很好。如果你能拦截到 Str 的电话那么你可以确保你只调用 Str传递正数,然后在 - 前面加上前缀你自己。

我已将错误提交给质量中心:QC#103436 .

关于Delphi XE2 - System.Str 更改/损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297999/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com