板 1- 前 次 新 レス
管理人の雑記
[3]管理人 ★:06/05/17 07:56 ID:???
WindowsAPIの定数とかを表示
lukewarm.s101.xrea
ウィンドウメッセージやAPIを使うとき、いちいちWM_なんとか等の定数に割り当てられた実際の値を調べるのが面倒だった。
構造体を扱うときには、構造体の全体のサイズや、アクセスしたいメンバの先頭からのオフセットなども計算する必要があり、激しく面倒だ。
そこで、調べたい内容を入力するだけで値を表示してくれるツールを作ることに。
しかし、定数などのデータベースを作成したり、APIのヘッダを解析して目的の値を求めたりするプログラムを作るのは面倒くさい。
目的の値を表示するC++のソースコードを生成してコンパイル・実行すれば、簡単に目的の値が得られるはずである。
例えば、WM_USERの値を知りたい場合、main関数に「printf("0x%X",WM_USER);」と書けばよい。
STARTUPINFO構造体のサイズを知りたいときは、「printf("%d",sizeof(STARTUPINFO));」、
STARTUPINFO構造体のdwFlagsメンバのオフセットを調べるには「printf("%d",(int)(&(test.dwFlags))-(int)(&test));」とする。
出力を読み取る部分は、以前作った標準入出力の読み書きを使用し、結果はリストビューに表示するようにした。
色々と適当なスクリプトだが、とりあえず動いているようである。
構造体のメンバのオフセットを一つずつ調べなければならないのは多少面倒だが、かなり便利になった。
実行には適当なC++コンパイラが必要。多少直せば、Delphiとかのコンパイラも使えるかも。
前 次