2004-04-01から1ヶ月間の記事一覧

ATL,WTL と windowsx.h を同時に使用するには

windowsx.h を ATL,WTL のヘッダファイルより先にincludeする。これにより、ATL,WTLの関数とバッティングするマクロ定義が除去される。

破壊後に移動

WM_DESTORY の後に WM_MOVE を受け取ることがある。 その為、WM_MOVEで子コントロールのサイズを変更している場合に問題が出るかと思いきや、このWM_MOVEが呼び出された時点では WM_MOVE が呼び出されたコントロールも、その子コントロールも、破棄されてい…

静かなエラー

WTLでプログラムを組んでいると、エラー音と共にいきなりプログラムが終了するようになってしまった。 出力は何も無し。 例外も出ていないし、ASSERTも出ていない。原因を調べてみると、PostQuitMessage 送信後にエラーが起こり、__crtMessageBoxAが呼び出さ…

VC++でプログラム終了時のメモリリーク検出

を有効にするには、以下のコードを実行しておく。 int flag=_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); flag |= _CRTDBG_LEAK_CHECK_DF; _CrtSetDbgFlag(flag); 前はこんな指定をしなくても自動でやってくれたような気がしたが...。

WTLのCommandBarで256色のアイコンを使う方法。

CCommandBarCtrlImpl::LoadImages() でロードするイメージを256色にする。 具体的には、CCommandBarCtrlImpl::CreateInternalImageListをオーバーライドし、この関数内の ILC_COLOR を ILC_COLOR8 とする。 CreateInternalImageListは仮想関数ではないが、テ…

iconv 1.9.1

iconv 1.9.1 をコンパイルしようとするが configure で configure: error: cannot guess build type; you must specify one と表示されて失敗する。原因は自分で作った変なコンテキストメニューからコマンドプロンプトを起動していたからだった。 "cygwin.ba…

スタックか、ヒープか

デバッグをする上で、あるオブジェクトがスタック上にあるかヒープ上にあるか判別できたら便利な場面が出てきた。 確か、どこかのMLでスタックかヒープかを判別する方法が議論されていた気がするが・・・結局見つからなかった。「オブジェクトのアドレスがグ…

リンクエラー

O2Handler 0.3の制作中... Release版にするとエラーが出る。 LIBCMT.lib(crt0dat.obj) : error LNK2005: __osplatform は既に LIBCMT.lib(crt0dat.obj) で定義されています。 LIBCMT.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です。 原…