VC++6.0で、いつもVC++4.0でやっていた如く iniファイルの場所をexeファイルと同じ場所にしようとしたら、アプリケーションの終了時にエラーが発生(汗)
MFCのソースを見たら、m_pszProfileNameをfree()で解放しようとしてエラーになっていた。自分はnewで作ってデストラクタできちんとdeleteしていたから、二重解放およびmalloc⇔newの方式違い(汗)
newで作るのをやめて_tcsdup()を使うようにし、解放処理も無くしたらちゃんと動いた。見た目もすっきりしていい感じ(笑)
しかしこうなると気になるのがVC++4.0でやっていた方法。今までエラーなんか出なかったしな~
と思ってMFCのソースを見てみたら、解放処理なんぞ無い!(爆)
そりゃ今までエラーにならなかったわけだ。
…つまり確保したメモリの解放はプロセスの解放処理で誤魔化してたということか…クラスライブラリの仕様とは思えないな(苦笑)
そんなだからMFCはバカにされるんだよ~。
…しかしこの間違いで数件も見つかるところが逆にすごい(笑)