Обновить
159
0
Александр (Rouse_) Багель @Rouse

Инженер — программист

Отправить сообщение
Целеустремленный парень :)
У меня как-то проще получилось — на новый год (как раз на праздник, когда было «Я устал -Я ухожу») написал статью, совпадающую по теме с дипломом моей супруги, в итоге — десятый год женат :))
Ну если вы представляете как оно работает, то должны понимать, что подавляющее большинство методов VCL может привести к генерации исключения.

Отсюда следует что Вы предлагаете вместо Canvas.Brush.Handle писать так:

if Canvas <> nil then
if Canvas.Brush <> nil then
Result := Canvas.Brush.Handle;

?

Не перебор, ли? :)
Отличный материал. Сам недавно возился со SMART правда не с симкой, а с чем-то наподобие карточек для метро/трамвая, метод научного тыка, конечно помог, но теперь по крайней мере понимаю где я делал правильно :)
Жду продолжения :)
Сразу подумал, что достаточно показать сообщение об ошибке, и это надо сделать до того как сольется менеджер памяти

А мы на этот вывод не сразу вышли (сказалась запарка по основноу проекту) и пришлось помучаться :)
Спасибо, правда данная карта периодически меняется (к примеру EAbstractError уже не мапится на 210-ый код и закреплена за 217-ым), но за ссылку спасибо :)
Согласен, но не всегда это можно сделать, к примеру в случае ошибок в пропиетарных сторонних модулях, поставляемых в виде DCU.
Да и опять-же что делать в случае приведенного примера? Класс Loger не так критичен для исполнения приложения (значит глухой try..except, ну либо вывод сообщения, что тоже сильного смысла не имеет), но зато придется помнить о том что он может быть создан с ошибкой и перед его использованием везде вставлять проверки. Палка о двух концах, получается :)
Язык — это всего лишь инструмент, какая разница какого цвета молоток, если нужно забить гвоздь? :)
ЗЫ: Видимо ошибка эвристика, на что намекает сигнатура DPH (Dr.Web Process Heuristic)
Кстати, чуть не забыл.
Утилита Process Memory Map (собственно как и VMMap от Марка Руссиновича) детектируется антивирусом DrWeb 9.0 как «DPH:Trojan.Inject.3».
Что не может не удивлять, ибо открытие памяти удаленного процесса на запись не производится.
Предыдущие версии DrWeb такой реакции не проявляют.
Спасибо за счастливое детство!

Класс :))))
Незачто :)
Всегда пожалуйста :)
Спасибо :)
Подготовка к данной статье и работа над ней была самой продолжительной (если не считать цикл статей про отладчик)…
Автор пропустил небольшой нюанс.
Для правильной работы описанной методики из 32 битного приложения в 64 битной ОС нужно делать вызов шлюза FS:[0xC0]

Вот тут был рассмотрен этот момент
Что же тут интересного? Полностью ложная предпосылка.

Ну вот видите — Вы это понимаете, но как это объяснить человеку, который ранее с этим не сталкивался?
А сам вопрос — это дословная цитата, с которой все и началось :)
Кстати нужно проверить вызов CharInSet под ХЕ4, уж больно сильный был на семинаре пиар по поводу исправления большинства ошибок. Чем бог не шутит — может действительно поправили :)
Ох, это старая ошибка и (если не ошибаюсь) идет с самой первой юникодной D2009.
Впрочем проблемы с юникодом, к сожалению даже в XE3 не все поправлены, а уж сколько лет прошло.
Почему бы не использовать CompareNaturalText из JclStrings?

Честно говоря не знал о CompareNaturalText, мы не используем Jedy.

В этой же реализации меня смущает приведение к AnsiString'ам.

Эмм, AnsiLowerCase не приводит к Ansi строке :)
В базовой поставке нет.
Понимаю, что вы понимаете, но звучит странно, ибо он ни в коем разе не ошибается, просто реализует другую (базовую) логику :)

Да, действительно, немного не удачная фраза :)
Но чуть дальше я постарался расписать подробнее о сути «ошибки».
Просто не знаю как правильно перестроить предложение в данном случае :)

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность