Carbon化?


やっぱり今の旬はCarbonでしょ! などと、勝手に思いつつ、手持ちのいちばん単純なものをカーボン化してみようというわけで、CarbonLib 1.0.3 SDKをダウンロードしてきて、CarbonLib_1.0.3_SDKから、Carbon Support:Universal InterfacesのCIncludesとRIncludesをCodeWarrior Pro 5:Metrowerks CodeWarrior:MacOS Support:Universal:Interfacesに、Carbon Support:CarbonLib:StubのCarbonLibとLiteCarbonLibをCodeWarrior Pro 5:Metrowerks CodeWarrior:MacOS Support:Universal:Libraries:StubLibrariesに、同じくStubのCarbonAccessors.oをCodeWarrior Pro 5:Metrowerks CodeWarrior:MacOS Support:Universal:Libraries:PPCLibrariesにコピーすることで、CodeWarrior 5.3に組み込んで、準備完了! 多分これでいいはず・・・。正しいかどうかは不明です。

でも、Carbonアプリケーションの解説本なんて持ってないし、作り方も分からない。そこで、CarbonLib 1.0.3 SDKに含まれていたSample Codeをみて、その設定をまねしつつ、Carbon Documentationの中のPDFファイルを読みつつ、ジャンケンゲームをCarbon化してみることにしました。

まず、プロジェクトの設定をSample Codeをまねて、Mac LibrariesをMSL RuntimePPC.LibとCarbonLibのみにして、プリフィックスファイルも、CarbonPrefix.hにして、carb 0 リソースも加えてコンパイル。すると、いくつかの関数でエラーがでました。SetPortについては、Carbon DocumentationのなかのCarbon Porting.pdfに書いてある通りのものだったので、その通りに修正して、その他は、Universal Headerのファイルをみて、それを参考するなどして、強引にエラーがでないようにして無事メイク完了。

とりあえず、CarbonLibのあるMac OS 9では当然動作します。が、強引に修正したためか、何やら動作がおかしい部分もあったりします。細かい部分は、あとで修正することにして・・・。CarbonLibが入れていないMac OS 8.1では、「“CabonLib”が見つからないので、アプリケーション“じゃんけん”を開くことができません。」との警告が。そして、機能拡張フォルダに、CarbonLibとNavigationをいれたMac OS 8.1では、普通通り動作しました。どうやら、まさしくCarbonLibが必要なアプリケーションになったみたいです。Carbonアプリケーションかどうか解らないところがミソです。Mac OS X 環境がないため、Mac OS X でclassicアプリケーションとして動作するのか、Carbonアプリケーションとして動作するのか解りません。ただ単に、CodeWarrior 5.3とUniversal Interfaces 3.3.1を使ってコンパイルしたCarbonLibが必要なアプリケーションになった可能性が大の様な気が・・・。大丈夫だといいんですけど、Carbonについての説明のPDFファイルが英語なので、なかなか本気で読む気になれないのです。英和の電子辞書使いつつ、読んでみないと。

本当のCarbon化は、Mac OS X とCodeWarrior 6.0がそろってからのお楽しみということで・・・。

(追記)
CarbonLib_1.0.3_SDKの中のフォルダ「Carbon Support」を、「CodeWarrior IDE」(アプリケーション)があるフォルダに入れておいたほうがいいようです。CarbonLib_1.0.3_SDKの「Sample Code」フォルダの中にあるサンプルのプロジェクトのアクセスパス設定が、CodeWarrior IDEのあるフォルダのCarbon Supportフォルダ以下を参照しているからです。


戻る