Как стать автором
Обновить
0
@FDsagiziread⁠-⁠only

Пользователь

Отправить сообщение

Обработка Segmentation Fault в C++

Время на прочтение3 мин
Количество просмотров70K

Вводная


C++ является «небезопасным» («unmanaged») языком, поэтому программы могут «вылетать» — аварийно завершать работу без сохранения данных пользователя, сообщения об ошибке и т.п. — стоит только, например, залезть в не инициализированную память. Например:
void fall()
{
  char * s = "short_text";
  sprintf(s,"This is very long text");
}

или
void fall()
{
  int * pointer = NULL;
  *pointer = 13;
}


Всем было бы лучше, если бы мы могли «отловить» падение программы — точно так же, как в java ловим исключения — и выполнить хоть что-то перед тем, как программа упадет (сохранить документ пользователя, вывести диалог с сообщением об ошибке и т.п.)

Общего решения задача не имеет, так как C++ не имеет собственной модели обработки исключений, связанных с работой с памятью. Тем не менее, мы рассмотрим два способа, использующих особенности операционной системы, вызвавшей исключение.

Читать дальше →
Всего голосов 67: ↑60 и ↓7+53
Комментарии59

Создаем рекурсивные ярлыки в Windows

Время на прочтение5 мин
Количество просмотров123K
Все мы знаем, что такое ярлык. А что будет, если сделать ссылку ярлыка самого на себя?
Создание ярлыка на ярлык приводит к его копированию. И что будет, если принудительно создать побайтно такой ярлык?

Но, расскажу я не об этом, а о том, как можно создать папку, от вида которой все программы вылетают с ошибками.
Да, только от вида: на папку даже кликнуть не успеете.

Зайти в такую папку обычными файловыми менеджерами будет невозможно.

Но тут не обошлось без ярлыка, и я расскажу, как это сделать и для чего можно использовать.
Читать дальше →
Всего голосов 237: ↑223 и ↓14+209
Комментарии105

Как определить все мониторы и их разрешения

Время на прочтение1 мин
Количество просмотров27K
image
Недавно возился с нормальной инициализацией окна, и стояла задача задетектить все мониторы и их разрешения. Оставлю тут решение для потомков.
Читать дальше →
Всего голосов 51: ↑37 и ↓14+23
Комментарии23

Договориться можно обо всём

Время на прочтение2 мин
Количество просмотров40K
Добрый день, уважаемые посетители Хабра.



Несколько дней назад я прочитал замечательную книгу Гэвина Кеннеди «Договориться можно обо всём». Как верно отмечает автор, мы ведем переговоры с первых лет своей жизни, начиная еще до того, как научимся толком разговаривать, и важность правильно вести переговорный процесс, что в личной жизни, что в работе, очень сложно переоценить. Особенно важно умение вести переговорный процесс в IT индустрии, где заказчики и исполнители зачастую говорят на разных языках, и совершенно по-разному оценивают различные события и факты. Книга произвела на меня отличное впечатление, и я искренне рекомендую всем, при наличии свободного времени, ее прочитать. В процессе ознакомления с материалом, Гэвин предлагает читателям несложные тесты, и, далее, дает развернутые комментарии тех или иных наших ответов, классифицируя читателей по 4 категориям: Ослы, Овцы, Лисы и Совы, согласно умению вести переговорный процесс. Именно эти тесты, а точнее их автоматизация, и побудили меня написать этот пост на Хабре. Хотите проверить свой талант переговорщика?
Хочу! Дальше!
Всего голосов 153: ↑111 и ↓42+69
Комментарии85
2

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность