как совместить два LPCWSTR? - PullRequest
       1

как совместить два LPCWSTR?

7 голосов
/ 20 декабря 2010

У меня есть две переменные, которые LPCWSTR с.Я хочу создать новую переменную, которая будет иметь значения первой и второй переменных.
Я пробовал это, но это не сработало.

LPCWSTR d = L"sd";
LPCWSTR f = L"f";
LPCWSTR df = d + f;

Я получаю эту ошибку, когда пытаюсь это сделать.

1   IntelliSense: expression must have integral or enum type

Есть ли функция, которая может объединять два LPCWSTR с?

Ответы [ 2 ]

12 голосов
/ 20 декабря 2010

В C ++ обычно хорошей идеей является использование std::string для работы со строками. В вашем случае это может выглядеть так:

LPCWSTR d = L"sd";
LPCWSTR f = L"f";
std::wstring df = std::wstring(d) + f;
LPCWSTR dfc = df.c_str(); // if you are really need this
1 голос
/ 20 декабря 2010

Это не работает, потому что компилятор C ++ не может генерировать код для объединения массивов.Две строки в примере являются массивами типа wchar_t.Чтобы присоединиться к массивам, вы должны использовать функции более высокого уровня.Есть несколько способов сделать это:

LPWSTR df[20]; // cannot be LPCWSTR, because the C is for const.
wcsprintf(df, L"%s%s", d, f);

или

LPWSTR df[20];
wcscpy(df, d);
wcscat(df, f);

или использовать STL, как ответили ранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...