Недопустимое поведение Visual Studio 2022C++

Программы на C++. Форум разработчиков
Гость
Недопустимое поведение Visual Studio 2022

Сообщение Гость »

Я столкнулся со странным поведением VS. Пожалуйста, посмотрите код C++ ниже

Код: Выделить всё

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

Вернуться в «C++»