Как преобразовать строку LPCSTR в строку LPCTSTR? - PullRequest
1 голос
/ 29 октября 2009

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

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

я обнаружил, что o / p похож на Raja .... r (junkvalues) .... как можно набрать LPCSTR to LPCTSTR?

Ответы [ 3 ]

2 голосов
/ 29 октября 2009

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

1 голос
/ 29 октября 2009

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

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

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

0 голосов
/ 28 июня 2017

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

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

TCHAR str3[256] = { 0 };
for (int i = 0; str2[i] != 0; i++) str3[i] = str2[i];
...