[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に渡せるかも不確かということか.