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
    对于,而非Null终止的数组的指针长度 nLength字符。

  • nLength
    字符数的计数在 pch的。

  • ch
    单个字符。

  • pszSrc
    要复制的一个Null终止的字符串到此 CStringT 对象。

  • 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( LPCSTRlpsz ):构造将ANSI字符串的一个Unicode CStringT。 还可以使用此构造函数加载字符串资源如下面的示例所示。

  • **CStringT(**LPCWSTRlpsz ):构造一个Unicode字符串的 CStringT

  • CStringT(const unsigned char*psz ):可以使用从指针的 CStringT 到 unsigned char。

备注

定义 _CSTRING_DISABLE_NARROW_WIDE_CONVERSION 宏关闭隐式字符串转换在 ANSI 和 Unicode 字符串之间。宏从支持转换的生成构造函数排除。

请注意 strSrc 参数可以是 CStringTCThisSimpleString 对象。 对于 CStringT,请使用其默认实例化(CStringCStringACStringW)之一,对于 CThisSimpleString,使用一 this 指针。 CThisSimpleString 声明 CSimpleStringT选件类的实例,比 CStringT 选件类与小于内置功能的较小字符串选件类。

重载运算符 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选件类