次の方法で共有


CStringT::CStringT

更新 : 2007 年 11 月

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( LPCWSTR lpsz ): Unicode 文字列から CStringT を構築します。

  • CStringT( const unsigned char* psz ): unsigned char へのポインタから CStringT を構築できます。

strSrc パラメータは CStringT オブジェクトまたは CThisSimpleString オブジェクトのどちらでも指定できます。CStringT の場合、その既定のインスタンス化 (CStringCStringA、または CStringW) の 1 つを使用します。CThisSimpleString の場合、this ポインタを使用します。CThisSimpleString は、CStringT クラスより組み込み機能が少ない小さな文字列クラスである CSimpleStringT クラス のインスタンスを宣言します。

オーバーロードされた演算子 CSimpleStringT<>&() が、CSimpleStringT 宣言から CStringT オブジェクトを構築します。

cws1zdt8.alert_note(ja-jp,VS.90).gifメモ :

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 クラス

その他の技術情報

CStringT のメンバ