元マカーからのツッコミ

こちら↓にアドバイスというか、いくつかツッコミを。(^^;
http://d.hatena.ne.jp/ryoko_komachi/20000801


私は、漢字Talk7〜MacOS9までMacユーザーをやってたのですが、
経済的理由により、MacOS Xには、移行出来てない人なので、
最近のMac事情には疎くて、分からないことが多いのですが・・・。(^^;;;

Q. アプリケーションが終了しないんだけど?

どうも、"x" (赤い○) を押しても、最小化するだけの仕様が一般的らしいですよ。OSのメモリ管理に自信があるのかなぁ(笑)。



MPUのメモリ保護機能を無視して、680x0をスーパーバイザーモードで、
全力疾走させてた時代から、そうでしたよ〜。(笑)
ですので、メモリ管理とは関係無いかと。(^^;


Macでは、そのボタンには、ウィンドウを閉じるという意味しかないんですよ。


逆に、Macユーザーだった私は、ウィンドウを閉じると同時にアプリケーションも終了するという
凶悪ユーザーインターフェイス
採用してるWindowsを初めて使った時は、かなりショックを受けました。


ウィンドウを閉じると、いきなりアプリケーションが終了するんですから、
超ビックリです。(笑)



Appleは、新しいOSを出すと、それに同時に、


ヒューマンインターフェイスガイドライン
http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/index.html


を出しますので、ソフトを作る人は、それに合わせて作る事になっております。


Windowsユーザーから見ると気持ち悪い事もあるかもしれませんが、
出来るだけこれに合わせるようにして下さい〜。


ちなみに、そのボタンは、
close button↓と言います。
http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGWindows/chapter_17_section_3.html


名前の通り、基本的にはウィンドウを閉じる為のボタンですな。
ボタンにそれ以外の意味を勝手付加するのはよろしくなさげです。


で、Apple様は、MacOS XでのWindowをcloseする時の動作は、
こんな↓風に作って欲しいとのことみたいですね。
http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/

XHIGWindows/chapter_17_section_4.html#//apple_ref/doc/uid/20000957-20000961-TPXREF56



元マカーの主張としても、引き続き作業を続ける可能性のあるソフトは、
ウィンドウを閉じたぐらいで勝手に終了させるな!と激しく主張させて頂きます。(笑)

Q. EXEファイルって概念はあるの?

"xxxxx.app" ってフォルダを作り、そのフォルダ構成自体がアプリケーションとして認識されているようです。フォルダの中に、各種設定があるみたいですね。なかなかスマートな考え方かも。



それですが、MacOS Xから導入された機能でして・・・。
昔は、データフォークとリソースフォークという概念を利用して
Macのアプリケーションは管理されていました。


このデータフォークとリソースフォークの概念ですが、
MacOS Xにも残ってまして、Winから入ってきた人には、
かなりの罠ポイントです。


MacOS Xcpコマンドを使って、普通にファイルをコピーした
つもりでいるとリソースフォークがコピーされてなかったり
するので要注意。


その為、MacOS Xの開発環境では、CpMacというコマンドが用意されて
いたりします。↓
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/CpMac.1.html


MacOS X上で、Javaなんかを使ってファイルを扱う時もこの問題が発生するっぽいです。


MacOS Xのファイル管理は、歴史的な問題で、Windowsユーザーから見ると
ちょっと面倒な事になってるので、ファイルを扱う時は用心して下さい。
(逆に、Macユーザから見ると、Winのファイル管理の手の抜き方具合に呆れたりするわけですが・・・。
ファイルの種類は拡張子で管理ってのは、分かりやすいけど、あまり美しくないなぁ〜と。(^^;)


自作プログラムを作る人は、Finderにお伺いをたてずにファイルを操作した時は、
リソースフォークの事を忘れてる可能性があるので、大丈夫かな〜?と
いつも心配する習慣をつけておく必要があります。(^^;


データフォークやリソースフォークについては、
ResEditを起点に調べていけば、色々と分かってくると思いますです。
http://www.google.co.jp/search?hl=ja&q=ResEdit
http://developer.apple.com/documentation/mac/pdf/ResEditReference.pdf

Q. DLLって概念はあるの?
調べ中。



あります。


これもまた歴史的問題で、Classic時代のやり方と、MacOS X時代のやり方が
あったりするです。


取り敢えず、MacOS Xなら、UNIX的な解決策で良さそうですが・・・。
この辺は、実際にやった事がないので、はっきり分かりませんけど・・・。(^^;


取り敢えず、ldコマンド↓あたりを起点に調べてみて下さい。
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/ld.1.html


MacOS Xのldコマンドは、Mach-O用に拡張されてるっぽいので注意が必要そうです。


Linuxで使われてるの↓と見比べてみると良いかもです。
http://www.linux.or.jp/JM/html/GNU_binutils/man1/ld.1.html


MacOS Xの共有ライブラリについての具体的な事は、
この辺↓が参考になるかもです。
http://developer.apple.com/documentation/DeveloperTools/Conceptual/MachOTopics/Articles/loading_code.html