>具体的に使ってはいけない物と代わりに使うべき物の対応表と,使用時の注意点などを示していただけませんか?
*C/C++ランタイム関数の対応表
については、全部並べるわけにも行かないので、MSDN(日本語)へリンクを張っておきます。
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/vccore/_crt_generic.2d.text_mappings.htm
tchar.hで、足りない部分はmy_tchar.hとかを作るほかなさそうです。
_tmemcpyも VC6では未定義です。(メモリ操作に変数の型は関係ないからだとは思いますが)
*使用時の注意
■長さの単位に気をつけてください。
TCHAR szDes[100], szSrc[100];
// 例えば、以下の使用方法は間違いです。
_tcsncpy( szDes, szSrc, sizeof( szSrc ) );
// 正しくは以下のどれかです。
・_tcsncpy( szDes, szSrc, 100 ); // szDes, szSrc は 100文字以上の配列だった場合
・_tcsncpy( szDes, szSrc, sizeof( szSrc ) / sizeof( TCHAR ) );
■上のに近いですが文字数をSJISで数えないでください。
例:
_tmemcpy( szDes, _T("(無題)"), 6 );
_MBCS(SJIS) ではたしかに「6バイト/char[6]」ですが、
_UNICODE/UNICODE では、「8バイト/wchar_t[4]」です。
実際には、日本語特有の文字列はリソースかどこかに追い出すのでこの問題はなくなると思います。
■_tcs***は _MBCS定義時、 _mbs*** にマップされる
str*** を用いていた部分を _tcs*** に書き換えると、実際に利用される関数が _mbs*** になるために動作が変わる(バグの元になる)ことがあるかもしれません。
また、パフォーマンスが落ちるかも