次の方法で共有


標準 C 関数

標準 C ランタイム ライブラリには、Unicode で使用できる文字列関数の Unicode UTF-16 (ワイド文字) バージョンと、1 バイト文字セット (SBCSs) の文字で使用できるバイト指向バージョンの文字列関数の両方が含まれています。 Unicode データ型 WCHAR は ANSI C のデータ型wchar_tと互換性があり、Unicode 文字列関数にアクセスできます。 Unicode バージョンの関数は、文字 "wcs" (または "_wcs") で始まります。 コード ページに使用されるデータ型 CHAR は、ANSI C の文字データ型 char と互換性があり、文字列関数にアクセスできます。 関数の文字バージョンは、文字 "str" で始まります。 文字 "_mbs" で始まる 2 バイト文字セット (DBCS) 用の特別なバージョンもあります。

標準 C ランタイム ライブラリには、すべての標準 C 文字列関数のジェネリック関数が含まれています。 これらは "_tcs" で始まり、Tchar.h ヘッダー ファイルに一覧表示されます。 これらの関数は、ジェネリック TCHAR データ型を使用します。

アプリケーションは、ジェネリック関数を使用して Unicode 用にコンパイルするには、次の行を追加する必要があります。

#define _UNICODE

#include <tchar.h>
#include <wchar.h>

Tchar.h ファイルと Wchar.h ファイルの両方が必要であり、_UNICODE変数の先頭のアンダースコアも必要であることに注意してください。 この命名規則は、標準の C ライブラリに固有です。 アンダースコアなしでレンダリングされる "UNICODE" は、Microsoft Windows ランタイム用です。

wcstombs および mbstowcs 関数は、標準 C ライブラリでサポートされている文字セットから Unicode に変換できます。一部の制限があります。 Unicode との間で文字列を変換する方法の詳細については、「文字列型間の変換 」を参照してください。

Tchar.h で定義されている printf 関数は、Strsafe.h 印刷関数と同じ書式指定をサポートします (たとえば、StringCbPrintf)。 同様に、Tchar.h は wprintf 関数を定義します。この関数では、書式指定文字列自体が Unicode 文字列です。

注意

バッファーの処理が不適切なのは、バッファー オーバーランを伴う多くのセキュリティの問題に関係しています。 Strsafe.h リファレンス 参照してください。 Strsafe.h で定義されている関数は、コード内で適切なバッファー処理のための追加処理を提供します。 これらは、組み込みの C/C++ に対応する実装と、特定の Microsoft Windows 実装を置き換えることを目的としています。 詳細については、「セキュリティに関する考慮事項: 国際機能」を参照してください。

 

Windows API で Unicode を する