■MFC相談室 mfc19d.dll■
at TECH
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