Delphi 2009を使用していますが、次のコードセグメントを使用すると奇妙なエラーが発生します。
var
Str : AnsiString;
CharPtr : PAnsiChar;
...
CharPtr := PAnsiChar (Str);
ExecuteInBackgroundThread (
procedure
begin
DoSomething (CharPtr);
end);
スコープから外れると文字列が破壊され、タイミング条件によってはDoSomethingが最も奇妙な結果をもたらすと推測しています。したがって、最初の質問は次のとおりです。私は正しいですか?
2番目の質問は次のとおりです。破壊されている文字列を回避するにはどうすればよいですか?これを行うための適切な方法は何ですか?
前もって感謝します。