Macintosh Developer Online (MDOnline)


2000年12月2日発行号 - ProjectBilderを使ってみる その3



昨日はオールナイトでMacWIREの忘年会(忘世紀会)ということで、Close Boxに書かれていたように編集部の方々はえらく盛り上がっておりました。私も参加させてもらったのですけど、1次会と2次会の切れ目の時間が、ちょうど終電の時間でもあったので、私は徹夜モードには入らずに家に帰りました。
http://www.zdnet.co.jp/macwire/0011/30/c_closebox.html
で、忘年会会場に行く途中にふらっとビックカメラに寄ったら、バンダイのC@Mail-F38が売られていました。確か、12/1が発売日のはずだったと思うのですが、とりあえず\8,980円で買いました。軽い割にはボディーがちょっとでかいかなと思うところもありますが、まあ、形は慣れるしかないでしょうか。38万画素で、USB接続タイプなんですけど、この種の安物デジカメでは珍しく、Mac対応なんです。以前の高木産業のデジカメは、電池があまりに持たないので使うのをやめましたけど、C@Mailは単4が3本で70分持つとなっています。ニッカドもOKで、電源はとりあえず合格ですね。だけど、画質はやっぱりちょっと今ひとつかな。許容範囲ギリギリという気もしますが、大昔に買った35万画素のDS-7からは明らかに見劣りします。しかしながら、CFカードが使えるというのはまずまずいいかもしれません。ただ、せっかくUSB接続できるのだけど、ソフトウエアのできがいまひとつです。ついでに文句を言えば、非常に簡単なマニュアルなのはいいとしても、その補足が何ページにも渡り、さらに補足の補足のペーパーがあるのもすごいですが、「内臓メモリー」などという文字がでかでかと見えています。あわててそうなったのかもしれませんけど、ちょっと雑なところも目立ちます。もう少し使ってみて、また御報告しましょう。
http://www.bandai.co.jp/cmail/

それから、この後、読者情報の更新処理を行ないます。11月初頭に購読期限切れをお知らせしましたが、御入金されていない場合にはこの号で配信は終了します。もし、支払い忘れたという方がいらっしゃったら、お手数ですけども、再度、通常通りのお申し込み手続きをお願いします。
(新居雅行 msyk@mdonline.jp


【小池邦人のプログラミング日記】2000/12/2<ProjectBuilderを使ってみる その3>

今回はアプリケーションのBuild(コンパイル&リンク)とRun(起動)、それからジャイアントアイコン(128×128ビクセル)のアプリケーションへの実装について解説します。

とりあえず前回までの状況で、アプリケーションをBuildしてみることにします。Buildするには、プロジェクトウィンドウの左上にある「ハンマー」アイコンをクリックするか、もしくはBuildメニューから「Build」を選択します。
 

Buildはコンパイルとリンクを実行するだけですので、Buildが成功した時点でアプリケーションを起動したい場合には、Buildメニューの「Build and Run」を使うとよいでしょう。アイコンボタン側にも同じ機能は存在していないかと、shiftキーやoptionキーを押しながらBuildアイコンをクリックしてみましたが(笑)どうやら無いようです。アイコンボタンを使いRunさせる場合には、Build後に同じ並びの「モニター」アイコンをクリックしてください。Runの右隣がDebug用なのは理解できますが、その左隣の「ほうき?」アイコン(Buildメニューの「Clean」と同等)の役割が今ひとつ理解できません。クリックするとBuild済みのアプリケーションをハードディスクから削除するようですが、それだけの機能を提供するために彼はここに存在しているのでしょうか?謎であります。

さて、Buildをしてみると、コンパイルの途中でいくつもの細かなエラーが発生しました。利用していない自動変数が定義されているとか、プロトタイプ宣言が無いとか、現状のコンパイルのシンタックスチェックのレベルは、かなり高く設定されているようです。オプティマイズレベルやシンタックスチェックレベルに関する詳しい設定は、前回のリソース添付先の設定と同じく、プロジェクトウィンドウのTarget名のダブルクリックでオープンする情報設定ダイアログで行います。
 

情報ダイアログの「Built Settings」ダブの「Compiler Settings」でオプティマイズレベルを、「Expert Build Settings」でシンタックスレベルやその他の詳しいパラメータを設定することができるようです。しかし「Expert Build Settings」の方はダブルクリック後にテキスト入力すると言う太古のユーザインターフェースとなっており(涙)現状では使う気がしません。妙な設定でうまく動かなくなるのも嫌ですので、とりあえず現象のオプティマイズレベルやシンタックスチェックレベルに従い作業を進めることにします。

今回のリンクで最後まで残ったBuildの警告は(エラーでないのでBuildは成功する)、Carbon Print Manager APIのプロトタイプ宣言が無いという物でした。
 

これは、CarbonLib v1.2 SDKを使った場合でも起こる現象でして、Carbon Print ManagerのAPIが今までと同じ手法を使う物と、セッション(複数のプリントアウトを複数のプリンターに同時に行える仕組み)を使う物に分かれた事に起因します。どうも、ディフォルトではセッション用の方が定義されているようで、CarbonLib v1.2 SDKでも「#define PM_USE_SESSION_APIS 0」と定義しておかないと、非セッション用のCarbon Print Manger APIがリンクできません。ただ、実際にBuild後のアプリケーションを起動してみると、Printに関係する機能はちゃんと使えます。警告表示は出るのですがAPIへのリンクは問題ないようですので、今回は深く考えず、このまま作業を続けることにしました。

Buildする時は、リスト表示されているソースファイル名の左横の「小さな丸」が外れて(消えて)いないかチェックしてください。これが外れていると、そのソースはコンパイル対象外と判断されてリンク時にエラーが出ます。マウスクリックで簡単に外れますので、間違って外さないように注意しましょう。また、CodeWarriorでBuildを行うと、編集したソースファイルだけを対象にして再コンパイルを実行してくれます。ところが現状のProjectBuilderのBuildでは、リスト上の全ソースファイルを再コンパイルしてしまいます(涙)。編集したソースファイルがたった一つであってもでそうなるのです。この仕様(不具合?)は多分改善されると思いますが(ひょっとして現在でも切り替える設定があるのかも?)この状態のままだと、開発環境としては大きな欠点を持つことになってしまいます。

Buildが終了したら、出来上がった「ViewJPEG _X」をRunさせてみます。すると、なぜだかアプリケーションメニューが文字化けしていることに気づきました。
 

言語を「English」に切り替えてから新規の雛形プロジェクトをBuildしても、この現象は出るようです。よって、ProjectBuilderのバグだろうということで今回は無視しておきます。それ以外の機能は、CodeWarriorで作成したCFMベースのCarbonアプリケーションと何ら違いはありません。ところが色々と試しているうちに、起動スピードとアプリケーション容量が大きく違うことに気づきました。起動スピードは、CFMベースのViewJPEGよりもMach-Oベースの方が高速です。CFMベースのViewJPEGがDock内で4〜5回ジャンプしてから起動するのに対し、Mach-Oベースの方は2回ほどのジャンプで起動します。まあ、そうは言ってもCFMベースのViewJPEGの起動が遅くてイライラするというほどの長時間ではありません。それよりもビックリしたのは、アプリケーション容量の違いです。CFMベースのViewJPEGは、たった48Kバイトの容量しかありませんが、それと比較して同じソースコードから作成したMach-Oベースの方は、何と1.6Mバイト(メガですよ!)もあるのです。

何がそんなに容量を食っているのか調べるために、パッケージをほどいて中のファイルを調べたところ、やはりアプリケーション本体(起動コード部分)が容量の大部分を占めていました。考えられる原因は二つ。Mach-Oベースのランタイム環境(起動用ライブラリ)が大きいのか、利用したフレームワークがアプリケーション本体に実行コードまで追加しているのかどちらかです。QuickTime APIやCarbon Print Manager APIを使わないようにすると、アプリケーション容量が減っていきますので、原因は間違いなく後者のようです。Mac OS Xでの共有ライブラリの仕組みを構築している段階での暫定的な結果だと解釈しておきたいと思いますが、48Kバイトが1.6Mバイトになってしまうのは、いくら近年ハードディスクの容量が増大しているといっても少々困ったものです。Mac OS X完成時には改善されていることを期待したいと思います。


最後に、アプリケーションにジャイアントアイコンを付けてみます。アイコンファイルは、Developerフォルダ内のApplicationsフォルダにある「IconComposer」で作成します。IconComposerを起動し、適当なTIFFファイルをウィンドウ上へドラッグ&ドロップして登録します。
 

ちなみに、128X128ピクセルのアイコンマスクはαチャンネルを利用しているようです。よって、先んじてPhotoShop等で対応した画像を作成しておく必要があります。今回はMac OS XのCD-ROMにあった適当なTIFFファイルを借用してみたところ、ちゃんと128X128アイコンにマスク処理がなされていました。これに「.icns」という拡張子を付けてファイルに保存した後に、プロジェクトリストの「Resources」グループに登録します。ところが、これだけではFinder上にジャイアントアイコンは表示されません、実際にはTragetの情報ダイアログをオープンし、その「Application Settings」タグに表示される「Icon File:」カラムにファイル名を入力する必要があります。
 

この時、アプリケーションの「Signature:」や「Document Types」も設定しておくと良いでしょう。

ところが、こうしたファイル情報を設定しても、何故だかアプリアイコン上へのドキュメントアイコン(JPEGファイル)のドラッグ&ドロップでViewJPEG_Xが起動しません?果たしてProjefctBuilderでの設定や、リソースファイルとして付加したバンドルリソースは生きているのでしょうか?この開発環境(Finderの方か?)まだまだフィックスしなければならない問題が大量に残っているようです。
[小池邦人/オッティモ]

関連リンク:オッティモ
カテゴリ:ProjectBuilder/Interface Builder, 小池邦人のプログラミング日記


QuickTimeのGraphics ImporterでTIFFファイルを読み込むときのエラーについて

Technical Q&Aに掲載された「Graphics Importer -8970 errors & TIFF Support」では、QuickTimeのGraphics Importerの機能を利用してTIFFファイルを読み込んだ時のエラーについて説明がなされている。フォーマットの解釈の問題もからむようだが、QuickTime 4.1.2現在でサポートされているTIFFのフォーマットについても説明がある。読み込めないTIFFファイルがあれば、その状況をレポートしてほしいとも書かれている。

関連リンク:QTMCC18:Graphics Importer -8970 errors & TIFF Support
カテゴリ:Technical Q&A, QuickTime


ブラウザでファイルのダウンロードができない場合はパッシブモードをオンに

Webブラウザでファイルをダウンロードする時に、「パッシブモードに設定」という旨のメッセージが表示されて処理を行なわない場合の対処方法がTech Info Libraryに掲載された。そのときは、「インターネット」コントロールパネルを開き、利用者モードを「詳しい情報を指定」などにして、「詳細設定」のタブを表示させる。そして、FTPサーバのアイコンが選択された状態で、「FTP受動モード(PASV)を使用する」のチェックボックスをオンにしておく。

関連リンク:Mac OS 9: Web Browser Unable to Download Unless FTP Passive Mode is Enabled
カテゴリ:Knowledge Base(旧TIL), ブラウザ


TIL-JにPower Mac関連の文書が掲載、起動しないGigabitタイプのG4の対処など

日本語での技術情報を提供するTech Info Library-Jに、Power MacあるいはPower Macintosh関連の情報が掲載された。以下は文書名とアドレスだが、新しい話題については要約を示す。

◇31278JC:Power Mac G4 (Gigabit Ethernet): パワーボタンを押しても起動しない
 http://til.info.apple.co.jp/cgi-bin/artnum?id=31278
電源が供給されていることを確認すると同時に、本体内部での配線ケーブルをチェックする旨が書かれている。どの部分をチェックすればいいのかが、写真入りで掲載されている。

◇58677JC:Power Mac G4 Cube: コンピュータの起動方法(修正)
 http://til.info.apple.co.jp/cgi-bin/artnum?id=58677
◇24343JC:Power Macintosh G3 (Desktop): 128 MB DIMM メモリの対応
 http://til.info.apple.co.jp/cgi-bin/artnum?id=24343
◇24440JC:Power Macintosh G3: TV/FM チューナモジュールの互換性
 http://til.info.apple.co.jp/cgi-bin/artnum?id=24440
◇30281JN:Power Macintosh G3: 10BASE-2 ネットワークへの接続
 http://til.info.apple.co.jp/cgi-bin/artnum?id=30281
◇22119JC:Power Macintosh G3: Ethernet 経由の接続ができない
 http://til.info.apple.co.jp/cgi-bin/artnum?id=22119
◇22226JC:Power Macintosh G3: CD に収録されている Iomega 社の Zip ドライバについて
 http://til.info.apple.co.jp/cgi-bin/artnum?id=22226

関連リンク:Tech Info Library - Japan
カテゴリ:Tech Info Library-J, Power Mac


イメージの伸張コンポーネントのデータロードプロシージャについてのQ&A

Technical Q&Aに公開された文書の「Image Decompressor Data-loading Procs」では、QuickTimeのイメージの伸張コンポーネントの作成についての質問と答えが掲載されている。バッファのサイズが32KBになってしまうというものだが、最低32KB確保するというのが仕様となっている。データロードプロシージャなど、伸長コンポーネント関連の話題がサンプルプログラムとともに掲載されている。QuickTimeのコンポーネントを開発している人は目を通しておくのもいいだろう。

関連リンク:QTMCC19:Image Decompressor Data-loading Procs
カテゴリ:Technical Q&A, QuickTime


PageMakerでAppleのLaserWriterドライバを使用する方法

Tech Info Libraryに掲載された情報によると、Adobe Systems社のページレイアウトソフトのPageMakerでは、デフォルトで利用するプリンタはAdobeのプリンタドライバになっており、AppleのLaserWriterをセレクタで選んでいても、それを使わない。Appleのドライバを使うには、optionキーを押しながら、FileメニューのPrintを選択する。

関連リンク:Mac OS: Adobe PageMaker Does Not Use Apple Printer Driver by Default
カテゴリ:Knowledge Base(旧TIL), アプリケーション


2000年11月30日にTIL-Jに掲載された文書

日本語での技術情報を提供するTech Info Library-Jに、2000年11月30日に、別掲の記事以外に以下の記事が掲載された。

□システム関連
◇60169JN:Mac OS X Server: ハードウェアと互換性に関する FAQ(修正)
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60169
Mac OS X Server 1.2v3は、Gigabit EthernetタイプのG4にも対応したことが記載されている。

◇60400JN:Mac OS 8.6: コンピュータが DHCP 上で 5 分ごとに“一時停止”します(修正)
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60400
◇25145JN:Mac OS 9: 起動時に応答しなくなる
 http://til.info.apple.co.jp/cgi-bin/artnum?id=25145
◇24892JN:QuickTime 4: 一度にふたつ以上のムービーを開く
 http://til.info.apple.co.jp/cgi-bin/artnum?id=24892
◇75061JN:Windows 95/98 でファイルタイプの関連づけを設定する方法
 http://til.info.apple.co.jp/cgi-bin/artnum?id=75061
◇44000JN:ファイルをダウンロードする際の一般的なエラーメッセージ
 http://til.info.apple.co.jp/cgi-bin/artnum?id=44000

□WebObjects関連
◇70037JN:WebObjects: パッチリスト(修正)
 http://til.info.apple.co.jp/cgi-bin/artnum?id=70037
◇75091JN:WebObjects 4.5: WebObjects 4.5 Update 3 の概要
 http://til.info.apple.co.jp/cgi-bin/artnum?id=75091

□その他のハードウエア関連
◇43079JN:Modem: トラブル対処に役立つ参考資料
 http://til.info.apple.co.jp/cgi-bin/artnum?id=43079
◇58412JC:iMac : 使用中に断続的に停止する問題を解決する(修正)
 http://til.info.apple.co.jp/cgi-bin/artnum?id=58412

関連リンク:Tech Info Library - Japan
カテゴリ:Tech Info Library-J