2013-02-19 2 views
0

Мне нужно объединить две переменные CString и две переменные long в одном CString. Я нашел одну функцию формата, которую я использовал следующим образом:Конкатенация CString и Long в VC++?

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 

Есть ли функция, как toString(), как мы используем в Java?

ответ

0

sprintf (OutputBuffer, "% s% d", str, 123);

  1. Использование CStringA для версии ANSI.
  2. Используйте CStringW для Unicode Version.
  3. Используйте CString для версии TCHAR.

Чтобы заставить CString оцениваться как CStringA :: Перейти, Project-> Properties-> Configuration Properties-> General. С правой стороны, вы получите "Character Set" Row, изменить, что "Не установлено"

Смежные вопросы