すみません
もうひとつメモリリークに関して質問があります。
ダイアログクラスを
new で作って<vector>にしまっているとき、
必要が無くなったらdeleteして<vector>からそのポインタを消したいのですが、
以下のように
ダイアログクラスの
void MyDlg::OnClose() 関数から
CDialog::OnClose();
delete theApp.whoisdlg.at(d);
theApp.mydlg.erase(theApp.mydlg.begin() + d);
このようにしてdeleteしてみました
クラスの中からそのクラスを指すポインタを削除してるわけですから
なにかおかしなことになるかな?と思ったら
ちゃんと動いてしまいました。しかしデバッガには以下のようにメッセージが
でます。

Warning: calling DestroyWindow in CDialog::~CDialog --
OnDestroy or PostNcDestroy in derived class will not be called.
Warning: no message line prompt for ID 0x8008.
Warning: no message line prompt for ID 0x800A.

これはなにか問題ありますでしょうか?
それともこのような遣り方はやめた方が良いですか?