あまつぶ

3.4 【やっと動いたProjectBuilder】

 最近あるメールアドレスに届く日本語のメールがすべて文字化けしてしまうようになった。見ると、JISのはじまりをあらわす1B 24 42というバイト列が20 24 42になってしまっている。他のアドレスに届いたメールはちゃんと受信できていることを考えると、メールサーバが1Bを20に置き換えてしまっているような気がする。これは困った。
 ファイルに保存して20になってしまっている部分を1Bに置き換えて取り込んでみるとちゃんと読める形になってくれたが、いちいち手作業でこんなことをするのは面倒だ。一括置換してくれるソフトを作るという手もあるが、なんだかややこしい。っていうか、すでにそういうソフトがあったり……しないかな?(汗)
 一番簡単な解決策はメールアドレスを変えることなんだろうけど、ずっとちゃんと届いていたものが急にだめになるというのも謎だ。ま、フリーのメールなんであんまり期待してはいけないのだろうけど、どうしようかなぁ。

 表題の話。2.25(前回)に、Xの開発ツールが何度やってもインストールできなかったということを書いた、その話。アプリケーションなどを入れていたボリューム(2G)の内容をX PBをインストールしていたボリューム(1G)に移して、2Gの方にX PBと開発ツールをインストールしてみたところ、なんとあっさり成功。インストールの時に、これまでは300M以上必要だと出てきたのが90Mくらいに減っていたような気がするが、急いでインストールしてしまったのでよく覚えていない。ま、インストールしたあとの使用容量が1.2G程度であることを考えると、300M以上はなにかがインストールされたのだろうけど。
 早速、ProjectBuilderを立ち上げてみる(というか、実際には、インストール完了が2.25で、実際に動かしてみることができたのは昨日(3.3)だったりするのだけど)。意味のわからないウィザード(苦笑)が立ち上がるが、まずはデフォルトのままでいく。あとからでも設定は変更できるということだし、かまわないだろう。
 プロジェクトを作成すると、どんなものを作るか聞いてくるので、Carbon Applicationを選択。あ、そうだ。勘でわからなかった部分は小池邦人さんのページを参考にさせていただきました。ありがとうございます。で、Carbon Applicationを選ぶと、なんだか異様に大きなウィンドウが出てきた。左側にソースやリソースのリストが並んでいる。CodeWarriorのプロジェクトウィンドウと似たようなイメージだ。

 IconPartyやQT-Qはlibpngやらjpeglibやらを組み込まないといけないのがややこしいので、とりあえずPhutを移植(?)してみる。ソースとリソースを新しく作ったプロジェクトのフォルダにコピーしてプロジェクトに追加していく。まとめてドラッグしてもうまくいかないそうなので、Add Files...で選択してみた。PhutではMoreFilesを使用しているから、これも一緒に入れる。ライブラリを作成できるのかどうかはよくわからないため、ソースをそのまま使うことにした。
 さ、Makeだ(じゃなくてBuildなのか)。1ファイルだけをコンパイルするという機能はないみたいなので、まとめてBuildしてみる。と、、なんだかよくわからないエラーが出てきたぞ。エラーの読み方がわからないが……、そういえば、ヘッダファイルは1つ1つ指定せずに<Carbon/Carbon.h>を入れるだけでいいという話だったような気がしてきた。さっそくすべてのソース/ヘッダファイルについて置き換えを行う。あとは、StandardFileReplyが定義されていないと怒られたりした。手を抜いて構造体だけ使わせてもらったのが災いしたか。まずはテストなので適当に置き換えてとおす。
 cInfoWindowやcAliasFileが未定義だったのはやられた。このあたりの定数がどこで定義されているかわからず、結局その場で適当に定義してエラーを回避。Warningが山のように出ているから一応メモしておいて、、と。
 リソース(.r)については、これもインクルードを「#include "Carbon.r"」に置き換えることでうまくいった。#pragma markが使用できないみたいなので、とりあえずコメントアウト。あれ、リンクでもエラー発生だ。
 _NewAEEventHandlerProcなどが未定義になっている。あれ? なんでだろ。あー、これは、CodeWarriorでは自動的に置き換えてくれていただけで、本当はNewAEEventHandlerUPPじゃないとまずいわけね。なるほど。他にも似たようなのが何ケ所かあり、まとめて置換。
 で、もうひとつあるな。_GetTMTaskPtrが未定義と。見覚えがないけど、どこで使っているんだろう。探してみると(ProjectBuilderのSearchタブを使うとソース内の一括検索ができるみたい)、MoreFilesのSearch.cで使っている。見ると、「TARGET_RT_MAC_CFM」が0の場合に使用しているみたい。詳しいことはよくわからないけど、PowerPCコードなんだから関係ないはず(下の方に「ONEWORDINLINE(0x2e89); /* MOVE.L A1,(SP) */」なんて書いてあるし)。条件を、「TARGET_RT_MAC_CFM || TARGET_API_MAC_CARBON」に置き換えてエラー回避。さ、これで大丈夫かな。

 アイコンは出ていないけど、アプリケーションの動作自体は完璧だ。小池さんも書いておられるようにHideやQuitメニューが化けてしまっているのが気になるが、起動も心無しか早くて快適だ。サイズは、CodeWarriorで作成したものが約120Kに対し、ProjectBuilderで作成したものは約950Kと約8倍。次のバージョンからはこちらで公開していこうかなとも考えていたのだが、ここまで大きいと躊躇してしまう。どうしたものかなぁ。

 次回は、ソースをどちらでもうまくいくように考えてみようかなと思う。コンパイラがProjectBuilderかどうかって判別する方法はあるのかな?


February 25, 2001 ↑ March index → March 11, 2001