Macintosh Developer Online (MDOnline)


2000年4月20日発行号 - Carbon化シリーズ



本日より、Carbon化シリーズをお届けします。実際にCarbon化するのは、以前に「Macintoshアプリケーションプログラミング」という書籍で紹介した、ドローライクなソフトにしようと思います。中身的にはかなり古いということもあるのですけど、まとまった大きなソフトとして、自分自身でいじれるのはこれしかないので、これでやってみたいと思っています。最後までなんとかがんばろうと思います。ただし、1回目は、CodeWarriorにSDKのUniversal Headersをインストールして、Appleのサンプルプログラムをコンパイルするところまでです。まずは準備というところです。
さっき、沼津での女子高生殺人事件を昼のワイドショーで見ていたのですが、福留アナウンサが、なぜ17才が27才と知り合ったのか疑問…のようなことを言っていました。たしかに知り合った理由は知りたいのですが、年令に注目すること自体が疑問だと思ってしまいました。17才が27才に接触するチャンスなんていくらでもあります。それで、ワイドショーの方は、最近は女子高生がらみの事件が多いという話になるのですが、確かに傾向はあるとは言え、何らかのレッテルを張ったりするのはマスコミに限らず誰もがそうした結論を持ちたがります。だから、「いかがわしいサイトを見るやつはMacが多い」などと言われないように、みなさんも、エッチ系サイトやアングラサイトを見る時は、なるべくWindowsを使いましょう(というのはちょっと飛躍しすぎか…)。
(新居雅行 msyk@mdonline.jp


REALbasic 2.1の日本語版は「1ヶ月以内」のリリース予定

アスキーは、REALbasic 2.1の日本語版に関して、4月18日に、1ヶ月以内にリリースすることをサイトで明記した。2.0からのアップデートは無償になる。

関連リンク:REALbasic 2.1英語版がリリースされました
カテゴリ:REALbasic


【Carbon化シリーズ】開発環境を用意する

Mac OS XでもMac OS 8/9でも動くCarbon対応アプリケーションは、ここ数年のMac OS環境での主流となることは間違いない。少なくとも、現在あるアプリケーションを、Mac OS Xで動かすようにする最短距離と言える。Carbon SDKもリリースされ、サンプルプログラムやドキュメントも揃ってきたし、そろそろCarbon対応を真面目に考えるときだ(あるいはもう遅い?)。そこで、MDOnlineでは、既存のアプリケーションをCarbon対応するまでのプロセスを追って行くことにする。さて、最後まで行くことができるかどうか!?

まずは、開発環境のセッティングから行う。Code Warrior 5.3への日本語版パッチがちょうど先月に来たばかりだが、そのバージョンはCarbonに必要なUniversal Header 3.3が含まれていない。3.2が入っている。そこで、以下の手順で、Carbon SDKにあるファイルを、Code Warriorのフォルダにコピーしておく。
まず、Cのヘッダとリソースのヘッダだが、Carbon SDKでは、CarbonLib_1.0.2_SDK→Carbon Support→Universal Interfacesというフォルダに(デスクトップから→に従ってフォルダに入ることを意味する。以下同様)、CIncludesおよびRIncludesという2つのフォルダが存在する。これらを、Code Warrirorが認識できる場所にコピーする。コピーをする前に、古いバージョンのUniversal Headersを取り除いておこう。CodeWarrior Pro 5→Metrowerks CodeWarrior→MacOS Support→Universal→InterfacesフォルダにあるCInludesとRIncludesフォルダを、CodeWarrior Pro 5フォルダの外に出しておく。そして、Carbon SDKのCIncludesおよびRIncludesを、Code Wrrior Pro5…のInterfacesフォルダにコピーしておけばよいだろう。
次は、ライブラリのコピーだ。CarbonLib_1.0.2_SDK→Carbon Supportに、CarbonLibというフォルダがある。これを、CodeWarrior Pro 5→Metrowerks CodeWarrior→MacOS Support→Librariesというフォルダにコピーしておけばよいだろう。
以上は、場所的にはMacOS Supportフォルダ内であれば問題はないが、古いバージョンのUniversal Headersは取り除く必要があるので、そこまでのフォルダを開くのだから、元と同じ場所に入れておくのが無難だろう。

ここでQuickTimeのサンプルプログラム「Carbon QT Graphic Import」をダウンロードして、コンパイルしてみよう。以上の準備をしていれば、プロジェクトを開き、Command+Mでメイクができるはずだ。プロジェクトを開くときに、プロジェクトをコンバートするかをたずねるので、それはコンバートするようにボタンを指定すればよい。プロジェクトが開くと、即座にコンパイルできて、エラーは出ないはずである。Mac OS 9ならプログラムもダブルクリックして起動するし、FileメニューのOpenを選んで適当なグラフィックスファイルを読み込み、ウインドウに表示できればよい。とりあえず、これで基本的な準備はOKだと思われる。
ここでプロジェクトの内容をざっとみておこう。CやRezのファイル、ヘッダがあるのは従来と変わらない。ライブラリについてみてみると、MSL RuntimePPC.LibとCarbonLibがあるだけだ。基本的には以前のように、いろいろなライブラリを登録しないといけないということはなく、シンプルになったと言える。コンパイルの設定については、PowerPCコードを生成するが、従来とは基本的に同じ設定でかまわない。

◇Carbon SDK 1.0.2
 http://developer.apple.com/sdk/
◇サンプルコード「Carbon QT Graphic Import」
 http://developer.apple.com/samplecode/Sample_Code/QuickTime/Importers_and_Exporters/Carbon_QT_Graphic_Import.htm

カテゴリ:Carbon/CF, Carbon化


Dreamweaverの機能拡張を配付や情報交換するサイトを開設

Macromedia社は、「Exchane Dreamweaver」というサイトを開始した。同社のWebサイト構築ツールDreamweaver向けの機能拡張ソフトを一同に集め、機能拡張の利用者に対する利便を図る。機能拡張に対するレビューやレーティング、ディスカッションの機能も備えている。また、機能拡張を作成する開発者向けの情報も提供する。コミュニティを形成することで、より多くの機能拡張が品揃えされる環境をかもし出すのが狙いだ。すでに、100以上の素材がアップロードされており、テーブルの整形やリッチメディアの埋め込み、あるいはShockwaveベースのチャットシステムなど、さまざまなものが利用できる。

関連リンク:Macromedia Exchane Dreamweaver
カテゴリ:サードパーティの開発資料, オーサリング系


MRJAppBuilderのプロパティファイルの作成例

Technical Q&Aに、MRJAppBulderについての文書が公開された。MRJ 2.2より、PowerPC向けの起動コードを組み込んだアプリケーションを生成するMRJAppBuilderが組み込まれるようになった。従来のJBinderyでは、起動クラスやクラスを含むファイルの指定などをダイアログボックスで行っていたが、MRJAppBuilderでは、それらの設定をテキストのプロパティファイルで行う。MRJ SDKにその解説文書があるが、公開されたTechnical Q&Aの文書では、実際のプロパティファイルの作成例が記載されている。また、デベロッパが独自にプロパティを追記してもかまわないことが説明されており、そのプロパティは、getPropertyメソッドで取得できることも説明されている。

関連リンク:java24 - Defining user properties with MRJAppBuilder
カテゴリ:Technical Q&A, Java


カスタマイズ自由なマウスポインタを作る機能の解説文書が公開

Technoteに「TN1196: Cursor Components」という文書が新たに公開された。カーソルコンポーネントにより、カスタマイズしたマウスポインタをアプリケーションの管理下で利用できる。サイズも任意のため巨大なものを作ることも可能で、フルカラー、透明度、状況に応じた変更、アニメーションなどの機能を組み込むことができる。このカーソルコンポーネントは、Mac OS 9以降でのみ稼動する。現状では、CarbonやMac OS Xでのサポートはなされていないが、将来はサポートを予定している。また、現状のバージョンにはRage 128で最適化されていることもあって、稼動状況にも制約がある。
Technoteは大きくわけて、カーソル自体を定義するコンポーネントの作成と、そのコンポーネントの利用方法が記述されている。いずれも、サンプルのソースコードとともに詳しく解説されている。コンポーネントはリソースとしてファイルに保存しておく。さらに、Cursor Components SDKがリリースされる予定であるようだが、執筆時点では、リンク先のページには存在しなかった。実際のコンポーネントのビルド方法は、そちらにサンプルがあるものと思われる。

関連リンク:TN1196: Cursor Components
カテゴリ:Technote, Mac OS 9


AppleScriptのドロップレットをアプリケーションから呼び出すサンプル

サンプルコードとして公開されている「MakeStartupAliasesToMe」は、アプリケーションからAppleScriptのドロップレットを起動する方法を、コードのサンプルで示している。アプリケーションとは別にフォルダを作って、その中にドロップレットを作っておき、それを呼び出すサンプルでもある。また、パッケージ化されている場合でも稼動する方法が紹介されている。ドロップレットの呼び出しは、LaunchApplicationを利用するが、OpenDocumentsイベントを発生させるために、AppleEventレコードを作成している。いずれにしても、アプリケーション内にあるScriptsフォルダにあるドロップレットのFSSpecを取得しする関数はライブラリ的に使える。また、そのドロップレットに対して、on openハンドラへファイルへの参照を引き渡して起動する関数も同様にライブラリ的に使える。さらに、このサンプルはCarbon対応となっている。

関連リンク:Interapplication Comm: MakeStartupAliasToMe
カテゴリ:アップルからの開発資料, AppleScript, Carbon/CF


バージョンの古いAppleShare IPをPower Mac G4にインストールする方法

Power Mac G4にはMac OS 9がインストールされているが、AppleShare IP 6.1のCD-ROMしか持っていない場合に、6.3をインストールする方法がTech Info Libraryに掲載された。通常のインストール方法ではインストーラがエラーを出すので、AppleShare IPのCD-ROMから手作業でインストールを行う。その手順が記載されている。必要な機能拡張を、手作業でシステムにコピーする。また、あらかじめAppleShare IP 6.3へのアップデータをダウンロードしておく。そして、手作業で必要なファイルをコピーしたのち、再起動せずにアップデータを利用するように説明がなされている。

関連リンク:Power Mac G4: Installing Update for AppleShare IP 6.1
カテゴリ:Knowledge Base(旧TIL), サーバー製品, Power Mac