次の方法で共有


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 オブジェクト。CThisStringCThisSimpleString の詳細については、「解説」を参照してください。

  • 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 の場合は、その既定のインスタンス化 (CStringCStringACStringW) のいずれかを使用します。CThisSimpleString の場合は、this ポインターを使用します。CThisSimpleStringCStringT のクラスよりも組み込み機能の文字列クラスである 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

参照

関連項目

CStringT クラス

CSimpleStringT クラス