タイトル | 【小池邦人のプログラミング日記】2000/7/4<Mac OS Xへの道 Coorbon SDK その3> | カテゴリー | 開発情報, Carbon/CF, 小池邦人のプログラミング日記 |
作成日 | 2000/7/4 15:25:2 | 作成者 | 小池邦人 |
次に準備するものはC言語用のヘッダーファイルです。Carbon 1.0.4 SDKの「Carbon Support」フォルダ内の「Universal Interfaces」フォルダ内に、リンク時に用いるすべてのヘッダーファイルがあります。このうち「CIncludes」フォルダ(C言語用)の中身をすべてMetrowerks CodeWarriorの以下のフォルダに入れて差し替えます。 MacOS Support/Universal/Interfaces/CIncludes Carbon 1.0.4 SDKに添付されているヘッダーのバージョンは、なぜだかv3.3.1です。しかし、最新のバージョンはv3.3.2となっていますので、AppleのSDKサイト http://developer.apple.com/sdk/ から「Universal Interfaces 3.3.2 」を入手して、そちらを利用した方が良いでしょう。ADCメンバーサイトからは「Universal Interfaces 3.4d5」というバージョンもダウンロードできますが、こちらは開発途中のCarbonLib v1.1用ですので、現状では使わないでください。(まだ色々と不都合があるみたい...)現在のプロジェクトで古いバージョンのヘッダーファイルを利用していると、新しいヘッダーへの書き換えにより整合性がくずれてエラーが出る場合があります。プロジェクトに対してかなり古いヘッダーファイルを利用している場合には、最新の物へ更新する作業には細心の注意が必要となります。心して掛かりましょう! さて、ヘッダーファイルをCarbon APIコンパチブルとして利用するには、ソースの先頭に... #define TARGET_API_MAC_CARBON 1 というコンディショナル・マクロを定義して、このプロジェクトがCarbon API対応であることをコンパイラに指示します。例えば、ソースファイルをひとつしか利用していないプロジェクトでしたら、ソースの先頭に上記の定義を記述しておけばOKです。 もっと良い方法は、CarbonPrefix.hという上記定義のみを記載したヘッダーファイルを作ります。これをCodeWarriorのIDEのSettingsダイアログの「C/C++ Language」のパネルで「Prefix File」として定義しておきます。 Apple社が提供しているCarbon化「SimpleText」のサンプルプロジェクトなどでは、この方法が取られています。 ところが、私などが開発している大規模プロジェクトでは、大量のヘッダーファイルをソースコードの先頭に記載するのを避けるために(コンパイルのスピードを上げるために)Metrowerks社が標準添付している「MacHeadersPPC」というPrefix Fileを利用しています。ですから、そうした場合には、このMacHeadersPPCファイル自身をCarbon対応としてプリコンパイルしておく必要があるわけです。このMacHeadersファイルは、Metrowerks CodeWarriorの以下のフォルダ内にある「MacHeaders.mcp」というプロジェクトをMakeして作成することができます。 MacOS Support/MacHeaders プロジェクトをMakeすると、68K用やPPC用またはC++用など、ターゲット種類別に6つのMacHeadersファイルが作成されます。その内容は「MacHeaders.c」というファイルに記載されています。このソースコードで、でコメントで囲われていないヘッダーファイル(例えば#include Carbon用のMacHeadersを作成する場合には、MacHeaders.cの先頭に、Carbon対応のコンディショナル・マクロを定義してMakeし直せばOKです。 ただし、このままMakeしてしまうと、以前のMacHeadersファイルを上書きしてしまいますので、とりあえず前のファイルは別フォルダに待避しておき、出来上がった新しいCarbon対応のMacHeadersファイルの方を「MacHeadersCarbon」等に名称変更して利用するのが最善です。多分、次回のMac OS X対応のMetrowerks CodeWarriorのバージョンには、Carbon対応のMacHeaders(Prefix File)が添付されると思いますが、それまではこうした自作MacHeadersで急場しのぐことにします。 最後は、Carbon用のリソースの話です。実はMac OS 8や9用のCarbonアプリケーションには特別なリソースは必要ありません。Carbon化されたアプリケーションをMac OS Xで起動する場合にのみ、リソースタイプ=’carb’、ID=0のリソースをアプリに付加しておく必要があります。 現状のMac OS Xでは、このリソースを添付しないと、CarbonアプリケーションでもClassic環境で起動してしまいます。ただ、この仕様が最後まで残るか(Appleにより残されるか)どうかは何とも言えないと思います。 次回は、古いソースコード(プロジェクト)をCarbon化する時の要点を簡単にまとめてみたいと思います。 | |
関連リンク | オッティモ |