アプリケーションを Delphi 2009 に変換していますが、文字列 (ワイド) を AnsiString に変換する必要があるいくつかの呼び出しで興味深い問題に直面しました。
私が抱えている問題を示す例を次に示します。
var
s: PAnsiChar;
...
s := PAnsiChar(Application.ExeName);
Delphi 2007 以前のバージョンでは、s := PChar(Application.ExeName) はアプリケーションの exe パスを返します。
Delphi 2009 では、s := PAnsiChar(Application.ExeName) は「E」のみを返します。
私の推測では、Unicode 文字列を ANSI 文字列に変換しているためだと思いますが、PAnsiChar が完全な文字列を取得するように変換するにはどうすればよいでしょうか?