Delphi2006からXEにいくつかの大きなアプリを移植したいと思っています。その理由はUnicodeとはあまり関係がありませんが、(うまくいけば)IDEの安定性の向上、ネイティブPNGのサポート、コンポーネントの増加、VCLのバグの減少、サードパーティのものへの依存の減少、皆さんからのリブの減少などを利用するためです。一部のアプリはUnicodeの恩恵を受ける可能性がありますが、現時点ではそれは問題ではありません。現時点では、それらを再度コンパイルするための最も直接的なルートをたどりたいと思っています。
まず、あいまいな文字列宣言をすべて変更しました。つまり、stringをAnsiStringまたはShortStringに、charをAnsiCharに、pCharをpAnsiCharに変更し、D2006で再コンパイルしました。ここまでは順調ですね。何も壊れませんでした。
私の質問は:ここからどこへ?ソースをXEコンパイラに提示し、タッチペーパーに光を当てると仮定すると、大きな問題になる可能性が高いのは何ですか?
例えば、
var
S : AnsiString ;
...
MainForm.Caption := S ;
これはエラーを生成しますか?警告?VCLがUnicodeになっていると思いますか、それともXEが非Unicodeコンポーネントをプルするのでしょうか、それとも文字列を変換するのでしょうか?XEで8ビット文字列を使用してアプリを維持することは実際に実行可能ですか、それとも頭痛の種が多すぎますか?
Unicodeを使用するのが最善/最も簡単な方法である場合は、少なくとも近い将来、拡張文字を使用しない場合でも、それを実行します。
私が疑問に思うもう一つのことは、サードパーティのものです。XE互換のアップデートバージョンを入手する必要があると思います。
(肯定的な!)コメントをいただければ幸いです。