在D2007中连接字符串时,此访问冲突的原因是什么?

时间:2010-02-16 04:09:59

标签: delphi string constants delphi-2007

我有一个接受2个字符串参数的过程,其中一个参数有一个默认值。在程序中,我想连接一个和另一个以及一些文字以形成一个更大的字符串。不知何故,我有一个AV ...任何想法?

代码是这样的

{$WRITEABLECONST ON}
constructor MyClass.Create(s1: string; s2: string = GlobalConstant);
var s3: string;
begin
    ....
    if (s2 = '') then s2 := GlobalConstant + ' (' + s1 + ')';      // AV here
    ....
end;

如果我将GlobalConstant + ' (' + s1 + ')分配给s3,则将s3分配给s2,AV会消失。为什么?直接写入字符串参数有什么问题?

1 个答案:

答案 0 :(得分:6)

代码中的

其他错误,间接导致该位置的访问冲突(损坏)。使用带有FullDebugMode的FastMM来确定它是什么,以及如何解决它。