おいふぉりーのぶろぐ

きっと趣味のブログに違いないです!!

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

[MFC Feature Pack]CMFCToolBarEditBoxButton のバグ

さて,MFC Feature Pack のツール バー周辺機能を使おうと,試行錯誤していたのですが,これはないだろ~というバグを見つけちゃいました.正直,Feature Pack は Web にも情報があまりないし,リファレンスも”このトピックは作成中です。”という項目が結構あるので,うがぁーという感じです.

CMFCToolBarEditBoxButton クラスはエディット コントロールを保持するツール バー上に配置可能なボタンです.
リファレンスによると,使うときは,コンストラクタで初期化した後, CreateEdit() メンバ関数を呼び出しにより,エディット コントロールを生成します.

CMFCToolBarEditBoxButton クラスのソースを見ると CEdit *m_pWndEdit; というメンバがあり,エディット コントロールを格納するようになっているのが分かります.したがって,CreateEdit() メンバ関数はエディット コントロールを生成して,m_pWndEdit に格納するはずです.しかし,CreateEdit() メンバ関数の実際のソースはローカル変数 pWndEdit に生成したエディット コントロールを格納するだけで, メンバ変数 m_pWndEdit には格納しません.実際にCreateEdit() を呼び出してみると,生成されたエディット コントロールのポインタが行方不明になって,破棄も正しく行われないことから,メモリ リークが発生します.

ちなみに,MFC Feature Pack のサンプル ソースに "CMFCToolBarEditBoxButton" というキーワードで全文検索をかけてもヒットしません.サンプルでは使われていないのですね.なんだか CMFCToolBarEditBoxButton はコーディングだけされて,1 度もデバッグが行われていないような気がします.

とりあえず,m_pWndEdit は protected メンバなので,派生クラスを用意して何とかしようと考えているのですが,他にもバグがあったら,自前で新しくクラスを作ったほうが良さそうですね.
スポンサーサイト
  1. 2010/01/17(日) 03:35:25|
  2. ソフトウェア開発
  3. | トラックバック:0
  4. | コメント:0

来客数

プロフィール

Euphorie

Author:Euphorie
"おいふぉりー"って呼んでくださいな☆
ハードウェアとかソフトウェアとかの開発に興味があったり。。。
連絡先は上の画像。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。