VC++ COMの呼び出し

Visual C++ Express 2010で、ATLを使わずに、COMクライアントを作成してみた。 今回は、iTunesから現在再生中の曲のタイトルを取得するクライアントを例に説明する。 最初に、#importを使ってiTunesのインターフェスの宣言を取り込む 書き方は以下のとおり。…

Windows7のフォールトトレラントヒープ

Fault Tolerant Heap(FTH)はWindows7に搭載されているメモリ破壊によるプロセスの停止を回避する機能です。http://technet.microsoft.com/ja-jp/windows/dd723549.aspx調べたところ、以下のDieHardアルゴリズムを使っている模様。 http://www.cs.umass.edu/~…

ARPについて

TCP/IPのARP (=Address resolusion protocol)について、調査が必要になったのでメモ。 http://www.jp.freebsd.org/cgi/mroff.cgi?sect=4&cmd=&lc=1&subdir=man&dir=jpman-6.0.0%2Fman&subdir=man&man=arp http://www.linux.or.jp/JM/html/LDP_man-pages/man7…

JNIのデバッグ

Javaのネイティブライブラリのデバッグっていままで面倒かも?と思っていたけど、実は簡単だった。 dllをデバッグ版で作成 Javaのアプリケーションを起動 デバッガをJavaのプロセス(java.exe)にアタッチ デバッガでブレークポイントを張る ブレークポイント…

gccのインラインアセンブラ

最適化や特権モード命令を使用するときは、アセンブラでコードを書きたくなる。でも、分岐とかループが面倒で...というときのインラインアセンブラ。gccについては以下のページが入門として参考になりました。http://caspar.hazymoon.jp/OpenBSD/annex/gcc_i…

Windows Vista ftpコマンドのバグ

ときどきコンソールでftpコマンドを使うのだけど、Vistaのftpのlcdコマンドは文字が化ける。がっかり。 ftp> lcd aa aa: ユ0。0、0・L0級d0K0・~0[0・

Makefileの構文

Makefileの文法を忘れないようにまとめ。主な情報源はhttp://www.ecoop.net/coop/translated/GNUMake3.77/make_toc.jp.html ルール構文 ターゲット名:依存関係 <TAB>コマンド 変数構文 マクロとも言われる 代入 変数名=値 参照 $(変数名) 条件分岐構文 変数の内容</tab>…

配列へのポインタ

C言語で配列へのポインタなんてないと思っていたら、実はあった。たとえば、6個の要素をもつint配列へのポインターは以下のとおり。 int ary[] = {1,2,3,4,5,6}; int (*pAry)[sizeof(ary)/sizeof(int)] = &ary;この配列のポインタを引数にとる関数は以下のよ…

SIMD演算

C言語でSSEやSSE2を使う方法について。ポイントがいくつかあります。 xmmintrin.hやemmintrin.hをインクルードする SSE命令のみならxmmintrin.h、SSE2命令も使うならemmintrin.h SIMD命令でアクセスするメモリは16バイトアラインメントにする gccの場合、_mm…

Windows Vista

自宅のPCでVistaを使い始めて一週間。Vistaがメモリ食いなのは本当のようだ。ページファイルのサイズを比較するとXPでは初期状態で500MBもいかないのに対して、Vistaでは最初から1GBを超えてしまう。ただしVistaの場合、メモリ管理がうまくできているらしく…

Wake on directed packet

夜中にWindows Vistaのスリープ状態から勝手に復帰すると思っていたらネットワークアダプタの設定が原因だった。使っているネットワークアダプタ Intel 82566DC-2には「電源の管理」のところに「Wake on directed packet」という設定があり、これがONだとpin…

通算日計算

http://ja.wikipedia.org/wiki/%E4%BF%AE%E6%AD%A3%E3%83%A6%E3%83%AA%E3%82%A6%E3%82%B9%E6%97%A5:Title 修正ユリウス通日のアルゴリズムをC言語で表すと以下の通り。 int days2(int year,int month,int day){ if (month < 3){ year --; month = month + 12…

セキュアプログラミング講座

IPAのセキュアプログラミング講座。C言語でプログラムを書く際には読んでおきたい。 http://www.ipa.go.jp/security/awareness/vendor/programmingv2/index.html:Title

環境変数のバックアップ

仕事でWindowsを使っていると時々環境変数を別のユーザに移行したくなるときがある。Windowsの場合、環境変数はレジストリに保存されているので、レジストリのバックアップ・復元が一番便利だ。 キーは HKEY_CURRENT_USER\Environmentコマンドプロンプトでバ…

stripコマンド

binutilsのstripコマンドはシンボル情報を削除するためのコマンドだ。シンボル情報は関数などの名前を記述してあり、hogehogeのアドレスはどこか?といった情報が読み取れる。gdbやld がこれらの情報を使用する。 よく使うオプションは以下のとおり。 strip …