Код: Выделить всё
int len = GetWindowTextLength(hWnd);
wchar_t* buffer = 0;
if (len == 0)
return;
buffer = new wchar_t [len + 1];
if (buffer == 0)
return;
wmemset(buffer, 0, len + 1);
GetWindowText(hWnd, buffer, len);
// here the buffer is not null and filled right with zero terminated bytes in memory
// but something strange is occurring here...
_wcslwr_s(buffer, len);
// execution fails with error 110 string has no null terminated character
// and what i see in debugger?
// _wcslwr_s gets zero pointer to buffer
...
delete[] buffer;
Я виню Visual Studio и спрашиваю пожалуйста, как это исправить...
Я пробовал вызывать другие функции из string.h, например, _wcsdup, и получалось такое же поведение.
Вызываемый объект просто получить нулевой указатель вместо правильного... Я очистил все решение, но ошибка осталась.
Я пробовал поискать в Google проблему, но ничего не нашел
Подробнее здесь: https://stackoverflow.com/questions/782 ... -behaviour
Мобильная версия