CStringT::CStringT
CStringT オブジェクトを構築します。
CStringT( ) throw() :
CThisSimpleString(
StringTraits::GetDefaultManager()
);
explicit CStringT(
IAtlStringMgr* pStringMgr
) throw() :
CThisSimpleString(
pStringMgr
);
CStringT(
const VARIANT& varSrc
);
CStringT(
const VARIANT& varSrc,
IAtlStringMgr* pStringMgr
);
CStringT(
const CStringT& strSrc
) :
CThisSimpleString(
strSrc
);
operator CSimpleStringT<
BaseType,
!_CSTRING_IMPL_::_MFCDLLTraitsCheck<
BaseType,
StringTraits
>:: c_bIsMFCDLLTraits
> &()
template <
bool bMFCDLL
>
CStringT(
const CSimpleStringT<
BaseType,
bMFCDLL
> & strSrc
) :
CThisSimpleString(
strSrc
);
template <
class SystemString
>
CStringT(
SystemString^ pString
) :
CThisSimpleString(
StringTraits::GetDefaultManager()
);
CStringT(
const XCHAR* pszSrc
) :
CThisSimpleString(
StringTraits::GetDefaultManager()
);
CSTRING_EXPLICIT CStringT(
const YCHAR* pszSrc
) :
CThisSimpleString(
StringTraits::GetDefaultManager()
);
CStringT(
LPCSTR pszSrc,
IAtlStringMgr* pStringMgr
) :
CThisSimpleString(
pStringMgr
);
CStringT(
LPCWSTR pszSrc,
IAtlStringMgr* pStringMgr
) :
CThisSimpleString(
pStringMgr
);
CSTRING_EXPLICIT CStringT(
const unsigned char* pszSrc
) :
CThisSimpleString(
StringTraits::GetDefaultManager()
);
/*CSTRING_EXPLICIT*/ CStringT(
char* pszSrc
) :
CThisSimpleString(
StringTraits::GetDefaultManager()
);
CSTRING_EXPLICIT CStringT(
unsigned char* pszSrc
) :
CThisSimpleString(
StringTraits::GetDefaultManager()
);
CSTRING_EXPLICIT CStringT(
wchar_t* pszSrc
) :
CThisSimpleString(
StringTraits::GetDefaultManager()
);
CStringT(
const unsigned char* pszSrc,
IAtlStringMgr* pStringMgr
) :
CThisSimpleString(
pStringMgr
);
CSTRING_EXPLICIT CStringT(
char ch,
int nLength = 1
) :
CThisSimpleString(
StringTraits::GetDefaultManager()
);
CSTRING_EXPLICIT CStringT(
wchar_t ch,
int nLength = 1
) :
CThisSimpleString(
StringTraits::GetDefaultManager()
);
CStringT(
const XCHAR* pch,
int nLength
) :
CThisSimpleString(
pch,
nLength,
StringTraits::GetDefaultManager()
);
CStringT(
const YCHAR* pch,
int nLength
) :
CThisSimpleString(
StringTraits::GetDefaultManager()
);
CStringT(
const XCHAR* pch,
int nLength,
IAtlStringMgr* pStringMgr
) :
CThisSimpleString(
pch,
nLength,
pStringMgr
);
CStringT(
const YCHAR* pch,
int nLength,
IAtlStringMgr* pStringMgr
) :
CThisSimpleString(
pStringMgr
);
パラメーター
pch
nLength で指定された長さの文字配列へのポインター。この文字配列は NULL では終了しません。nLength
pch で指定された文字列の文字数。ch
1 文字。pszSrc
この CStringT オブジェクトにコピーされる、null で終わる文字列。pStringMgr
CStringT オブジェクトのメモリ マネージャーへのポインター。IAtlStringMgr、および CStringT のメモリ管理の詳細については、「CStringT によるメモリ管理」を参照してください。strSrc
この CStringT オブジェクトにコピーされる既存の CStringT オブジェクト。CThisString と CThisSimpleString の詳細については、「解説」を参照してください。varSrc
この CStringT オブジェクトにコピーされるバリアント オブジェクト。BaseType
文字列クラスの文字型。次のいずれかになります。char (ANSI 文字列の場合)。
wchar_t (Unicode 文字列の場合)。
TCHAR (ANSI 文字列と Unicode 文字列の両方の場合)。
bMFCDLL
プロジェクトが MFC DLL であるか (TRUE) ないか (FALSE) を指定するブール値。SystemString
System::String である必要があります。プロジェクトは /clr を使用してコンパイルする必要があります。pString
CStringT オブジェクトのハンドルを指定します。
解説
各コンストラクターは入力データを新しく確保したストレージにコピーするため、メモリ不足の例外が発生する可能性があります。これらのコンストラクターの一部は変換関数としても機能します。たとえば、CStringT オブジェクトの代わりに、LPTSTR などを代用できます。
CStringT( LPCSTR lpsz ): ANSI 文字列から Unicode CStringT を構築します。このコンストラクターでは、下の例のように文字列リソースを読み込むこともできます。
**CStringT(**LPCWSTRlpsz ) : Unicode 文字列を CStringT を構築します。
CStringT( const unsigned char* psz ): unsigned char へのポインターから CStringT を構築できます。
[!メモ]
ANSI と Unicode の文字列間の暗黙の文字列変換をオフにするには、_CSTRING_DISABLE_NARROW_WIDE_CONVERSION マクロを定義します。このマクロは、変換をサポートするコンストラクターをコンパイルから除外します。
strSrc パラメーターは CStringT オブジェクトまたは CThisSimpleString オブジェクトのどちらでも指定できます。CStringT の場合は、その既定のインスタンス化 (CString、CStringA、CStringW) のいずれかを使用します。CThisSimpleString の場合は、this ポインターを使用します。CThisSimpleString は CStringT のクラスよりも組み込み機能の文字列クラスである CSimpleStringT クラスのインスタンスを宣言します。
オーバーロードされた演算子 CSimpleStringT<>&() が、CSimpleStringT 宣言から CStringT オブジェクトを構築します。
[!メモ]
null 文字を埋め込んだ CStringT インスタンスを作成することは可能ですが、お勧めはしません。null 文字が埋め込まれた CStringT オブジェクトに対してメソッドまたは演算子を呼び出すと、予期しない結果が生じることがあります。
使用例
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1; // Empty string
CAtlString s2(_T("cat")); // From a C string literal
CAtlString s3 = s2; // Copy constructor
CAtlString s4(s2 + _T(" ") + s3); // From a string expression
CAtlString s5(_T('x')); // s5 = "x"
CAtlString s6(_T('x'), 6); // s6 = "xxxxxx"
CAtlString s7((LPCSTR)ID_FILE_NEW); // s7 = "Create a new document"
VARIANT var;
V_VT(&var) = VT_BSTR;
V_BSTR(&var) = ::SysAllocString(L"Football is a fun sport.");
CAtlString s8(var); // s8 = "Football is a fun sport."
// The following statement does not call the assignment operator.
// The compiler considers the following statement equivalent to
// CAtlString city("Paris")
CAtlString city = _T("Paris");
必要条件
ヘッダー: cstringt.h