Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

CString::GetBufferSetLength

Этот метод возвращает указатель на внутренний символьный буфер объекта CString, усекая или наращивая его длину, в случае необходимости, до точного соответствия длине, указанной вnNewLength. Возвращенный указатель LPTSTR - не константа и таким образом позволяет прямую модификацию содержания CString.

LPTSTR GetBufferSetLength(

int nNewLength );

Параметры

nNewLength

Определяет точный размер буфера символа CString в символах.

Возвращаемое значение

Указатель LPTSTR на внутренний символьный буфер объекта с нулевым символом в конце.

Замечания

Если Вы используете указатель, возвращенный GetBuffer, чтобы изменить строковое содержание, Вы должны вызвать ReleaseBuffer перед использованием любых других CString методов.

Адрес, возвращенный GetBufferSetLength может не быть правилен после обращения к ReleaseBuffer, так как дополнительные операции CString могут заставить буфер CString перераспределиться. Если Вы не изменяете длину CString, буфер не будет перераспределен.

Буферная память освободится автоматически, когда объект CString будет разрушен.

Обратите внимание, что, если Вы следите за длиной строки самостоятельно, Вы не должны добавилят в конец нуль-терминатор. Вы должны, однако, определить конечную строковую длину, когда Вы выпускаете буфер с помощью ReleaseBuffer. Если Вы действительно добавляете в конец закончившийся нулевой символ, Вы должны передать длину-1 в ReleaseBuffer, который выполнит функцию tcslen для буфера, чтобы определить его длину.

Пример

CString str;

LPTSTR pstr = str.GetBufferSetLength(3);

pstr[0] = 'I';

pstr[1] = 'c';

pstr[2] = 'e';

// Нет необходимости в перемещении нуля или в запросе к ReleaseBuffer ()

// потому что GetBufferSetLength () устанавливают это для нас!

str + = _T (" хоккей является лучшим спортом! ");

 

См. Также

CString::GetBuffer, CString::ReleaseBuffer



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS