2009-10-29 6 views
1

Я пытаюсь преобразовать строку LPCSTR в строку LPCTSTR. я хочу, чтобы объединить две строки, когда я пытаюсь как этотКак преобразовать строку LPCSTR в строку LPCTSTR?

LPCTSTR str1 = L"Raja" 
LPCSTR str2 = "Kumar" 
wcscat_s(str1,(LPCTSTR)str2); 

я нашел о/р, как Раджа .... г (junkvalues) .... как можно напечатанный материал LPCSTR к LPCTSTR?

ответ

1

LPCTSTR может быть либо простым символом, либо широкими символами в зависимости от настроек вашего проекта. Кроме того, вы не можете объединить широкую строку и строку с обычным символом. Вам нужно преобразовать одну в совместимую форму (широкоугольную или многобайтную или наоборот), а затем объединить.

Предполагая, что цель должна быть широкой, вам нужно будет преобразовать "Kumar" в широкую строку символов. Для этого используйте функцию MultiByteToWideChar с соответствующей кодовой страницей.

Посмотрите на this KB статью на MSDN и ссылку Джона.

2

См. Следующие примечания: Unraveling Strings in Visual C++. В заметках рассматриваются различные типы строк, которые вы увидите в разработке Microsoft C++ и как конвертировать между ними.

+0

спасибо..cook – Rajakumar

0

MultiByteToWideChar - единственный способ пойти, если ваш код скомпилирован с UNICODE.

В качестве альтернативы вы можете это сделать. 7bits ASCII -> wchar должно быть легко.

TCHAR str3[256] = { 0 }; 
for (int i = 0; str2[i] != 0; i++) str3[i] = str2[i]; 
Смежные вопросы