07/05/08 03:18:26
GetBuffer 関数から返されるポインタを使って文字列の内容を変更するときは、
次に他の CString メンバ関数を使う前に、ReleaseBuffer 関数を呼び出す必要があります。
CString hoge, hoge2;
strcpy(hoge.GetBuffer(20), "this is a test.");
hoge=""; //クリアしたつもりだけど何故かクリアされていない
int length=hoge.GetLength(); //この値は確かにゼロ
hoge2=hoge; //でもhogeもhoge2も"this is..."が入る
↑↑↑ここでコンパイル時にエラー出してくれりゃいいのに
hoge="AAA"; //これなら上書きされる
int length2=hoge.GetLength(); //この値は3
hoge=""; //今度はきちんとクリアされる