Вы используете его абсолютно неправильно:
Сначала вы передаете тип вместо значения здесь:
SendMessage(textBoxPathToSource, WM_GETTEXT, length+1, LPARAM(LPCWSTR));
Интерфейс WinAPI-функций, которые пишут в строкутребует буфера, так как std :: string нельзя записывать напрямую.Вам нужно определить пространство для хранения значения:
WCHAR wszBuff[256] = {0};
(конечно, вы можете выделить место для хранения, используя new, что вы не сделали, вы только что объявили LPCWSTR lpstr
).
Извлеките строку исохранить в этом буфере:
SendMessage(textBoxPathToSource, WM_GETTEXT, 256, (LPARAM)wszBuff);
и выполнить std::wstring s(lpStr)
.
РЕДАКТИРОВАТЬ: Обратите внимание на использование std :: wstring, а не std :: string.