「電波とどいた?」
2009/06版 その2

2009/06/17 (水)

C++Builder (プログラミング, 吉里吉里)

_ そろそろ吉里吉里本体も自前カスタムせざるをえないなぁってことでコンパイル環境を整えることに。

_ 吉里吉里の公式コンパイル環境は Borland C++ 5 なのですが、これは現在まず入手できません。 楓さんの作業のおかげで、他、6, 2006(TurboC++Explorer含む), 2007 でもコンパイルは通るようになってます。 微妙に最適化の関係でパフォーマンスおちる部分もあるそうですが、まあ誤差の範囲ってことで。

_ とりあえず以前ためした TurboC++ Exprlorer で確認……と思って起動してみたら エラー連発で大変なことに。.NET Framework 1.1 をこないだ消しちゃったからか、 と思って入れ直してみたら SP1 の導入で Windows Installer がエラーをはいてうまくインストールできない罠。 調べてみたところ、セキュリティパッチとかの順番の整合の兼ね合いらしく、 対策として「他のバージョンの .NET Framework も全部消して順番に入れ直し」しかない模様。 むきー。しぶしぶ全部入れ直し。

_ 起動するようになった……けど、なにやら C++ 用のモジュールがよみこまれないとか どーとかでまともに動作しない。ぐぐると同じ問題にはまってる人は多数いるっぽいんだけど 解決作はでてこない(苦笑)。まあ、そもそも Vista 以降非対応ってことでしょうがないか、 ということで、購入検討のため、最新の 2009 の体験版をいれて確認してみることに

_ ……コンパイルがさっぱり通りません。APIの整合がおかしいのか、文字列処理系でひたすらエラーでてます。 切り替えがあるのかなとおもってプロパティあさってみてもそれっぽいものがどこにもない。 ヘルプをみてみるかと思ったら、入ってなかったのでとりあえずインストール。完了。 Unicode をキーワードに検索してみると、「UnicodeあわせでAPI変わったからソースかきなおしてね(はぁと)」 的な記述をいきなり発見。なんじゃそりゃーーー。

_ どうやら、VCL とか Borland C++ 独自の API群が、過去互換なしでざっくり置き換わったようです orz。 基本的には AnsiString とか WideString だったとこが全部 UnicodeString になったようで、 値渡しの部分は型変換がかかるので通るのですが、ポインタ/参照関係はエラーになります。 吉里吉里は独自の Unicode 処理実装を行ってる関係で、いろいろ配慮してた部分が全部仇になってる罠。むぅ。 書き直せなくはないだろうけど、それをするにはソースを分岐、あるいは ifdef の嵐になるのでいやすぎる。

_ 検索してたら2007の在庫をまだ出してる店を発見したのでぽちっとな。




メールはこちらへ...[わたなべごう (go @(at) denpa .(dot) org)]

この日記は、GNSを使用して作成されています。