こちらを始めて利用させていただきます
MFCでのCMemFileクラスについて教えていただきたいのですが
現在このクラスを派生させて以下の2つの新規メンバ関数を作っています
①文字(CString)を入れていくだけでメモリに一時的に保存
②一時的に保存した内容をテキストファイルに出力
この①で指定した一時的に保存したメモリの内容をクリア(全削除)する方法がわかりま
せん
一応、ポインタでnew(インスタンスを生成)し、②で出力後インスタンスをdelete(解放)
し再度同じポインタでnewを行えば内容はクリアされるのですが他に方法はないでしょう
か?
参考文献も少なくMSDNで調べてもよくわかりませんでした
他に方法があるようならご教授よろしくお願います
> 他に方法はないでしょうか?
ないのでは。「そういうもの」だと思います。
強いてあげれば、MSDNにもあるように、自分で関数をオーバライドするくらい?
<MSDNより抜粋>
CMemFile オブジェクトが独自にメモリを割り当てた場合は、
CMemFile オブジェクトを破棄するときにメモリ ブロックが自動的に削除されます。
それ以外の場合は、オブジェクトに結び付けたメモリを解放する必要があります。
CMemFile はメモリを割り当て、再割り当て、解放するためにランタイム
ライブラリ関数 malloc、realloc、および free を使います。
CMemFile がファイルを拡張するときのこういった動作などを変更する場合は、
CMemFile から独自のクラスを派生し、適切な関数をオーバーライドします。
Banさん返答感謝です
やはり自分でオーバーライドでクリア処理を組み込むなどしないといけないですね
実際うまく組み込んで作れるようて解決したら報告をさせていただきます
返答ありがとうございました
とりあえずそれっぽい動きはするようになりました
Banさん助言感謝します