C++ 在VC+中连接CString和Long+;?

C++ 在VC+中连接CString和Long+;?,c++,casting,atl,tostring,cstring,C++,Casting,Atl,Tostring,Cstring,我必须将两个CString变量和两个long变量连接在一起 CString。我发现一个格式函数是这样使用的: CString str = "Some Data"; str.Format("%s%d", str, 123); 但这是错误的。以下是错误日志: \AudWinSockXCtrl.cpp(410) : error C2440: 'initializing' : cannot convert from 'const char [10]' to 'ATL::CStringT'

我必须将两个
CString
变量和两个
long
变量连接在一起
CString
。我发现一个格式函数是这样使用的:

CString str = "Some Data";

str.Format("%s%d", str, 123);
但这是错误的。以下是错误日志:

\AudWinSockXCtrl.cpp(410) : error C2440: 'initializing' : cannot convert from 'const char [10]' to 'ATL::CStringT'

        with

        [

            BaseType=wchar_t,

            StringTraits=StrTraitMFC

        ]

        Constructor for class 'ATL::CStringT' is declared 'explicit'

        with

        [

            BaseType=wchar_t,

            StringTraits=StrTraitMFC

        ]

.\AudWinSockXCtrl.cpp(411) : error C2664: 'void ATL::CStringT::Format(const wchar_t *,...)' :
cannot convert parameter 1 from 'const char [5]' to 'const wchar_t *'
        with


        [

            BaseType=wchar_t,

            StringTraits=StrTraitMFC

        ]

        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or
function-style cast

.\AudWinSockXCtrl.cpp(414) : error C2664: 'void ATL::CStringT::Format(const wchar_t *,...)' :
cannot convert parameter 1 from 'const char [4]' to 'const wchar_t *'

        with

        [

            BaseType=wchar_t,

            StringTraits=StrTraitMFC

        ]

        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or
function-style cast
有没有像我们在Java中使用的那样的
toString()
函数?

(OutputBuffer,“%s%d”,str,123)

  • 对ANSI版本使用CStringA
  • 对Unicode版本使用CStringW
  • 对TCHAR版本使用CString
  • 要强制将CString评估为CStringA:: 转到,项目->属性->配置属性->常规。 在右边,您将得到“字符集”行,将其更改为“未设置”

    阅读
    \T
    此处:

    CString str = _T("Some Data");
    str.Format(_T("%s%d"), str, 123);