VisualC++では、「文字セット」の設定によって、デフォルトで使用する文字列型が異なってくる。
ANSI:char
UNICODE:w_char
※ Visual Studio 2005から、UNICODEがデフォルトになっている。
これについて、設定に依存しないコードにするためのマクロが用意されている。
<tchar.h>をインクルードすることで、以下のようなマクロが使用可能となる。
ANSI | マルチバイト | UNICODE | マクロ | 備考 |
(指定なし) | L("****") | _T("****") | UNICODE文字列であることを指定するために、L()で囲む | |
_snprintf_s | _snwprintf_s | _sntprintf_s | sprintf()のセキュリティ強化版 | |
strcpy_s | wcscpy_s | _tcscpy_s | strcpy()のセキュリティ強化版 | |
strncat_s | wcsncat_s | _tcsncat_s | strncat()のセキュリティ強化版 |
* セキュリティ強化版は、VS2005以降(_MSC_VER >= 0x1400)で使用可能