ダイアログ生成時にウインドウハンドルがNULLになるが、GetLastErrorは0を返す問題の対応

WINAPIのDialogBoxやCreateDialogでウインドウを作成した場合
WM_INITDIALOGのメッセージが飛んでくるわけだが、なぜか0x0090が飛んできた後に
WM_DESTROYが来て終了してしまうというパターンが存在する。


なお海外の掲示板ではこのようなパターンも存在するらしいが今回は別のパターンがあることを紹介しよう。


使用しているダイアログの中に、dllを事前にロードしておかなくてはいけないものが存在する。
例えばリッチエディットである。
リッチエディットは"Riched20.dll"をLoadLibraryを用いて事前にロードしておく必要がある。


これを行っておかないと上記のようにWM_INITDIALOGが来る前に終了してしまう。
GetLastErrorは正常値を返すために、中々問題に気づくことができない。