Недопустимое поведение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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