うーんC++(というかVC++?(というかMFC?))に慣れない

.NETで言うところのArrayListみたいなお便利なものがないかしら? と思って調べていろいろやった。で、中身をデバッグ的にcoutするのに、こんなコードを書いた。

CByteArray myByteArray;
CString myString;
myByteArray.Add(9);
myString.Format("%d",myByteArray.GetSize());
cout << myString << endl;

これが"1"とか表示されなくてうなった。クイックウォッチでは値が編集されているのは間違いないんだけどうまく表示できない。あちこちサンプル探してたどり着いたのはコレ。

cout << (LPCTSTR)myString << endl;

こんな型キャストが必要だったとは! なんで普通に文字列がcoutできない仕様になっているんだ。不便じゃないか。