バージョン2007以前のDelphi / C++Builderアプリケーションを最新バージョンに移行するには、Unicode対応が必須となりますが、C++Builderアプリケーションの場合、Delphiと異なり、文字列型の扱いにいくつものバリエーションがあり、Delphiと同じUnicode対応のシナリオが有効ではない場合があります。
C++Builderには、GUIフレームワークとしてVCLがあり(現在ではこれにマルチプラットフォーム対応のFireMonkeyが加わりますが)、それとは別に、C++ライブラリ、あるいは従来からのCライブラリなどが用いられます。そして、使用しているライブラリによって、文字列型やその処理方法は異なっています。旧バージョンのC++Builderアプリケーションを効率的にUnicode対応していくには、こうしたC/C++言語固有の特性を理解し、対象のプロジェクトがどのようなマイグレーションシナリオに相当するのかを把握して、しかるべき対応を行う必要があります。
言い換えれば、そのポイントさえつかめば、比較的簡単にC++アプリケーションのUnicode対応が可能なのです。
以下のCodeRageセッションビデオは10 Seattleリリース時のものですが、このようなC++固有のUnicode対応について分かりやすくまとめられた内容なので、今回日本語字幕を付けるとともに、セッションスライドを日本語化して公開しました。
セッションのアジェンダは以下のとおりです。
- C、C++、VCL、WinAPIにおけるUnicode
- Cスタイル文字列のための新しいC / C++データ型
- VCL文字列クラス
- 「_TCHARのマップ先」オプション
- tchar.h
- Unicodeとのテキスト変換
- Unicodeテキストのファイル入出力
このセッションビデオを見れば、Unicodeをフルサポートしたモダンアプリケーションに旧バージョンのC++Builderプロジェクトを移行する方法、あるいは、ANSIサポートを有効にしたままGUIのみをUnicodeに移行して、最小の手間で最新バージョンへ移行する方法の双方を理解することができます。
ぜひご活用ください。