[Tips] まとめーNo.2
[MFC] アプリケーションのインスタンスハンドル等の取得
AfxGetInstanceHandle() GetModuleHandle(NULL)
ただ,ヘルプにGetModuleHandleは,マルチスレッドの場合は,危険が伴うと書いてあった.
[General] wget
結構便利かもしれない,HTMLのダウンローダ?インストールもとっても簡単.
これを使えば,あなたにもすぐダウンローダソフトが作れるかも?
インストール
wgetは,GNUで開発されている下記から,根気よくダウンロードする.
for MacOSX
ビルドする.ソースコードが配布されている.ソースコードファイルをダウンロード,解凍し,
./configure make make install
でインストールする.
[Cocoa] Xcodeのメモ(1) コンパイル時のフラグ

プロジェクトあるいはターゲットのGet Infoパネルで設定する.
[Cocoa] Xcodeのメモ(2) Cocoaのウィンドウクローズで終了〜Delegate
ウィンドウがオリジナルの場合は,windowShouldCloseのメッセージで実装できる.
ただし,そうではない場合は,他のインスタンスに実装する必要がある.
ビューあるいはただのオブジェクトのインスタンスがある場合は,InterfaceBuilderでメインウィンドウのDelegateにそれらを割り当てる.
アプリケーションを終了する場合は以下のメッセージで処理できる.
NSAppはそのアプリケーションでの唯一のアプリケーションを指す.
[NSApp terminate:self];
実際には,以下のようなメソッドをオーバーライドする.
- (BOOL)windowShouldClose:(id)sender { [NSApp terminate:self]; return YES; }
[Cocoa] XCodeのメモ(3) InterfaceBuilderでNSOpenGLViewをカスタマイズ

NSOpenGLViewのサブクラスをInterfaceBuilderで作成する場合,インスタンスを配置するときにNSOpenGLViewをルートとし,CustumClassをInspectorで設定すると,initWithFrame等のメソッドをオーバーライドできない.
上のスクリーンショットのようにCustumViewのサブクラスとして,インスタンスを配置するようにする.
ちゃんと設定できれば,Inspectorは上のスクリーンショットにようにHiddenのチェックボックスしか表示されなくなる.
[Cocoa] XCodeのメモ(4) IPアドレス
NSHostクラスを利用する.
NSHost*host = [NSHost currentHost]; NSArray*array = [host addresses]; NSString*ipv6 = [array objectAtIndex:0]; NSString*ipv4 = [array objectAtIndex:1];
[General] vallocとmallocの違い
ソースコードを読んでいると,vallocという関数がでてきた.調べてみる.
>廃止された関数である valloc() は size バイトのメモリを割り当て、割り当てられたメモリへのポインタを返す。 メモリのアドレスはページサイズの倍数になっているはずである。 これは memalign(sysconf(_SC_PAGESIZE),size) と等価である。
>POSIX では posix_memalign() によって獲得したメモリは free() を使って解放することができる必要がある。 いくつかのシステムでは memalign() や valloc() で割り当てられたメモリを再利用する手段が提供されていない。 (なぜなら free() に渡すことができるのは malloc() から受け取ったポインタだけだが、 例えば memalign() は malloc() を呼び出し、得た値をアラインメントしてしまうからである) GNU libc では ここに述べた 3 つの関数のいずれで獲得したメモリも free() で再利用することができる。
[[参考文献>http://www.linux.or.jp/JM/html/LDP_man-pages/man3/posix_memalign.3.html]]
うーむ.どうやら,ページングのサイズに合わせてメモリを確保する類のメモリ関数か.
廃止されたと書いてあるが・・・・.
コピーしたりするときにmallocよりも動作が速いとかの利点があるのか?
未だにAppleのソースコードにこの関数が残っている意味がわからん・・・.
さらにGNUなどの環境によってfreeに渡せるかも不確かということか.