Ознакомьтесь с нашей политикой обработки персональных данных
  • ↓
  • ↑
  • ⇑
 
Записи с темой: лень как двигатель прогресса (список заголовков)
22:33 

Трюк 0x0010 — Дакл, Сакл и Какл, или Шаринг в Виндах

mistificator
капелюх чарiвника
Адовая конструкция, убивающая весь смысл NTFS'а на корню:

//------------------------------------------------------------
SECURITY_DESCRIPTOR _sd;
::InitializeSecurityDescriptor(&_sd, SECURITY_DESCRIPTOR_REVISION);
::SetSecurityDescriptorDacl(&_sd, true, 0, false);
//------------------------------------------------------------


Применяем дескриптор безопасности к папке или файлу.

//------------------------------------------------------------
::SetFileSecurity(<имя файла>, DACL_SECURITY_INFORMATION, &_sd);
//------------------------------------------------------------


Результат:

//------------------------------------------------------------
"Для данного объекта нет заданных разрешений.

Предупреждение: это потенциально опасно, так как любой пользователь,
имеющий доступ к данному объекту, может стать его владельцем.
Владелец объекта должен как можно быстрее назначить разрешения."
//------------------------------------------------------------

@темы: Лень как двигатель прогресса

14:00 

Трюк 0x0002 — Автоматическое выполнение операций

Куб 0
Общеизвестно, что деструктор объекта, если объект создан путем простого объявления, вызывается автоматически в конце блока. При творческом подходе автоматический вызов деструктора удается приспособить для выполнения специфических задач.
Предположим, в разрабатываемом проекте необходимо измерять время выполнения тех или иных фрагментов кода или целых функций. Удобно подготовить класс TimeMeasure, не содержащий методов, а только лишь конструктор и деструктор. В конструкторе засекается время создания объекта TimeMeasure, в деструкторе вычисляется разность времен между выполнением деструктора и конструктора и выводится, например, на экран.
Читать дальше...

@темы: Лень как двигатель прогресса, Нетривиальный вызов

13:21 

Трюк 0x0001 — Компактное объявление свойств класса

Куб 0
Зачастую в классе необходимо объявить так называемые "свойства" — пары функций, отвечающие лишь за считывание и запись внутренней переменной. Например, SetColor() и GetColor(), SetText() и GetText() и так далее. Когда таких функций много, их объявление превращается в скучную рутинную работу, да и интерфейс изрядно загромождается.
С помощью нехитрого макроса можно облегчить себе жизнь и сократить объем кода.
Читать дальше...

@темы: Лень как двигатель прогресса

Записная книжка программиста C++

главная