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

ウインドウスタイルを変更する

MFCアプリケーションのウインドウ属性を変更するには、PreCreateWindow関数でCREATESTRUCT構造体のstyle属性を設定する。 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) { return FALSE; } // 最大化ボタン…

仮想デストラクタ

C++

派生クラスを作成した場合、コンストラクタは基底クラス→派生クラスの順に呼ばれる。 一方デストラクタは、派生クラス→基底クラスの順に呼ばれる。非仮想関数では、基底であっても派生であっても、インスタンスの型を見てどちらのクラスの関数を呼び出すかを…

メモリリーク対応

C++

_CrtSetBreakAllocを用いると、指定したメモリ割り当て位置にブレークポイントを設定できる。 下記のようなログが出た場合、strcore.cpp(156)を呼び出している個所を特定する際に用いる。 ただし、毎回固定位置にメモリ割り当てされる場合にしか使えない。 D…

エラー「ヒープが壊れていることが原因として考えられます。」

C++

mallocで確保した領域を初期化せずにstrcatしていたため、確保した領域内のゴミの後ろに文字列が連結されていた。今まではmalloc後にstrcpyしていたが、そこをコメントアウトしたことで発生していた。 回避するには、mallocした後はstrcatではなくstrcpyする…