Целеустремленный парень :)
У меня как-то проще получилось — на новый год (как раз на праздник, когда было «Я устал -Я ухожу») написал статью, совпадающую по теме с дипломом моей супруги, в итоге — десятый год женат :))
Отличный материал. Сам недавно возился со SMART правда не с симкой, а с чем-то наподобие карточек для метро/трамвая, метод научного тыка, конечно помог, но теперь по крайней мере понимаю где я делал правильно :)
Жду продолжения :)
Спасибо, правда данная карта периодически меняется (к примеру EAbstractError уже не мапится на 210-ый код и закреплена за 217-ым), но за ссылку спасибо :)
Согласен, но не всегда это можно сделать, к примеру в случае ошибок в пропиетарных сторонних модулях, поставляемых в виде DCU.
Да и опять-же что делать в случае приведенного примера? Класс Loger не так критичен для исполнения приложения (значит глухой try..except, ну либо вывод сообщения, что тоже сильного смысла не имеет), но зато придется помнить о том что он может быть создан с ошибкой и перед его использованием везде вставлять проверки. Палка о двух концах, получается :)
Кстати, чуть не забыл.
Утилита Process Memory Map (собственно как и VMMap от Марка Руссиновича) детектируется антивирусом DrWeb 9.0 как «DPH:Trojan.Inject.3».
Что не может не удивлять, ибо открытие памяти удаленного процесса на запись не производится.
Предыдущие версии DrWeb такой реакции не проявляют.
Что же тут интересного? Полностью ложная предпосылка.
Ну вот видите — Вы это понимаете, но как это объяснить человеку, который ранее с этим не сталкивался?
А сам вопрос — это дословная цитата, с которой все и началось :)
Кстати нужно проверить вызов CharInSet под ХЕ4, уж больно сильный был на семинаре пиар по поводу исправления большинства ошибок. Чем бог не шутит — может действительно поправили :)
Ох, это старая ошибка и (если не ошибаюсь) идет с самой первой юникодной D2009.
Впрочем проблемы с юникодом, к сожалению даже в XE3 не все поправлены, а уж сколько лет прошло.
Понимаю, что вы понимаете, но звучит странно, ибо он ни в коем разе не ошибается, просто реализует другую (базовую) логику :)
Да, действительно, немного не удачная фраза :)
Но чуть дальше я постарался расписать подробнее о сути «ошибки».
Просто не знаю как правильно перестроить предложение в данном случае :)
У меня как-то проще получилось — на новый год (как раз на праздник, когда было «Я устал -Я ухожу») написал статью, совпадающую по теме с дипломом моей супруги, в итоге — десятый год женат :))
Отсюда следует что Вы предлагаете вместо Canvas.Brush.Handle писать так:
if Canvas <> nil then
if Canvas.Brush <> nil then
Result := Canvas.Brush.Handle;
?
Не перебор, ли? :)
Жду продолжения :)
А мы на этот вывод не сразу вышли (сказалась запарка по основноу проекту) и пришлось помучаться :)
Да и опять-же что делать в случае приведенного примера? Класс Loger не так критичен для исполнения приложения (значит глухой try..except, ну либо вывод сообщения, что тоже сильного смысла не имеет), но зато придется помнить о том что он может быть создан с ошибкой и перед его использованием везде вставлять проверки. Палка о двух концах, получается :)
Утилита Process Memory Map (собственно как и VMMap от Марка Руссиновича) детектируется антивирусом DrWeb 9.0 как «DPH:Trojan.Inject.3».
Что не может не удивлять, ибо открытие памяти удаленного процесса на запись не производится.
Предыдущие версии DrWeb такой реакции не проявляют.
Класс :))))
Незачто :)
Подготовка к данной статье и работа над ней была самой продолжительной (если не считать цикл статей про отладчик)…
Для правильной работы описанной методики из 32 битного приложения в 64 битной ОС нужно делать вызов шлюза FS:[0xC0]
Вот тут был рассмотрен этот момент
Ну вот видите — Вы это понимаете, но как это объяснить человеку, который ранее с этим не сталкивался?
А сам вопрос — это дословная цитата, с которой все и началось :)
Впрочем проблемы с юникодом, к сожалению даже в XE3 не все поправлены, а уж сколько лет прошло.
Честно говоря не знал о CompareNaturalText, мы не используем Jedy.
Эмм, AnsiLowerCase не приводит к Ansi строке :)
Да, действительно, немного не удачная фраза :)
Но чуть дальше я постарался расписать подробнее о сути «ошибки».
Просто не знаю как правильно перестроить предложение в данном случае :)