C++使用で、厳しく求められる安全性とソースの共有の上で
・TCHAR [](固定長) による文字列とその処理
・(STL)std::basic_string<TCHAR> による文字列とその処理
・(MFC)CString による文字列とその処理
について考えているのですが、

C++でも文字列変数にTCHAR[]が多いのはなぜでしょうか?
安全性の要求があってもbasic_stringなどでなくTCHAR[](固定長)を使うのは
なにか理由があるのでしょうか?