■MFC相談室 mfc19d.dll■ at TECH
[2ch|▼Menu]
648:デフォルトの名無しさん
08/11/24 07:44:54
>>646
> たぶんどっちでも良くて気分の問題

んなことぁない。

直接参照する場合、thisポインタのチェックが入らないのに対して、Get
SafeHwnd()は、(CWndを指す)thisポインタが有効かどうかチェックした後
でthisポインタがNULLの時m_hWndの値を参照せずNULLを返し、thisポインタ
が有効な時のみメンバ変数m_hWndの値を返す。

クラスメンバとして実体が存在するオブジェクトに対して使う場合は、
>>643 氏の言うとおり。

問題はGetParent()などのようにCWndのポインタとしてNULLを返す可能性が
ある場合、戻り値をチェックせず、m_hWndを直接参照すると「0xXXXXXXXXが
無効なポインタを参照うんぬん」というエラーで落ちることになる。

自前のコードでチェックしてm_hWndを参照してもいいけど、どうせなら
そういう場合はGetSafeHwnd()を使った方がスマート。

同様に、CGdiObject::m_hObjectも、CGdiObject::GetSafeHandle()を
使った方がいい。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4354日前に更新/186 KB
担当:undef