Я работаю над Visual studio C ++.
У меня есть эти коды:
CString str;
BYTE byBuffer[10000] = { 0 };
str ="Invalid Command. Spaces are not allowed too!!";
strcpy_s(reinterpret_cast<LPSTR>(byBuffer), 10000, T2CA(str ));
Проблема в byBuffer = «Неверная команда. Пробелы тоже не разрешены !!»; но после следующей строки строка меняется.
LPBYTE lp = byBuffer; Хотя он отлично работает для небольших строк, как хорошо, хорошая работа. так далее..
Я отлаживаю весь код, устанавливая точки останова. кроме того, эта функция была вызвана для другой функции, в которой (LPBYTE lpBuffer) получил это значение.
Помогите плз
Код, который вы нам показываете, выглядит нормально, так что я собираюсь сделать предположение.
Я предполагаю, что вы пытаетесь вернуть этот буфер из функции:
LPBYTE lp = byBuffer;
return lp;
Если это так, то локальная переменная byBuffer
уничтожается в конце функции, и указатель больше не указывает на допустимую память. Вам повезло, если вы можете увидеть что-нибудь узнаваемое на выходе.
Других решений пока нет …