Правила просты: вы помогаете нам улучшить EurekaLog, принимая участие в опросе. Заполнение анкеты займёт всего несколько минут. По окончании опроса будут выбраны 3 случайных участника.
25 декабря 2020 г.
22 декабря 2020 г.
Даже в пустых приложениях есть баги
С нами связался человек, который утверждал, что нашёл баг в EurekaLog. Он обосновал это утверждение следующим образом: если создать новое приложение DataSnap и добавить в него EurekaLog, то приложение вылетит с Access Violation при выходе.
19 ноября 2020 г.
Добавление EurekaLog в программу вызывает Integer Overflow?
К нам обратился человек, который пожаловался на то, что его приложение работало нормально, пока он не добавил в него EurekaLog. После включения в проекте EurekaLog стало появляться исключение Integer Overflow. Исключение происходило внутри функции
_UStrCatN
(функция конкатенации нескольких строк в RTL).9 октября 2020 г.
Добавление EurekaLog в программу вызывает Access Violation?
К нам обратился человек, который пожаловался на то, что его приложение работало нормально, пока он не добавил в него EurekaLog. После включения в проекте EurekaLog стало появляться исключение AccessViolation с текстом Access violation at address 00E15025 in module 'Project.exe'. Read of address 83EC8B69 и таким стеком:
- Contoso.pas TContosoEventMessage.BasePerform
- Vcl.Forms.pas TApplication.WndProc
- System.Classes.pas StdWndProc
- Vcl.Forms.pas TApplication.HandleMessage
- Vcl.Forms.pas TApplication.Run
- Project.dpr Initialization
18 сентября 2020 г.
15 августа 2020 г.
8 марта 2020 г.
Как узнать, почему программа внезапно закрывается?
Иногда бывают ситуации, когда ваше приложение просто молча закрывается, и вы понятия не имеете почему. Как можно диагностировать подобные ситуации?
6 марта 2020 г.
Полиморфизм на практике - "как"
Товарищи, я тут нашёл в черновиках статью аж от 2013 года. Публикую.
Статья написана сразу после "Дружественность" в Delphi. Статья является логическим продолжением серии переводов Полиморфизм ad nauseum и последующего обсуждения в Delphi-блогах.
За давностью лет я уж и забыл, почему она в черновиках. Возможно, не всё сказал, что хотел. Может, творческий запал оборвался. А может, местами коряво получилось, не вычитал. Там в конце было что-то про журнал - возможно, я планировал опубликовать это в журнале. Также, материал про соединение потоков и файлов планировался в серию про сериализацию. Сырцы к статье чудом нашёл в бэкапе проектов. Короче, сделайте скидку.
В первой статье "Что такое полиморфизм" Всеволод Леонов простым языком объяснил на наглядных примерах, что такое полиморфизм. В этой, второй, статье мы попробуем применить полиморфизм на практике.
Статья написана сразу после "Дружественность" в Delphi. Статья является логическим продолжением серии переводов Полиморфизм ad nauseum и последующего обсуждения в Delphi-блогах.
За давностью лет я уж и забыл, почему она в черновиках. Возможно, не всё сказал, что хотел. Может, творческий запал оборвался. А может, местами коряво получилось, не вычитал. Там в конце было что-то про журнал - возможно, я планировал опубликовать это в журнале. Также, материал про соединение потоков и файлов планировался в серию про сериализацию. Сырцы к статье чудом нашёл в бэкапе проектов. Короче, сделайте скидку.
В первой статье "Что такое полиморфизм" Всеволод Леонов простым языком объяснил на наглядных примерах, что такое полиморфизм. В этой, второй, статье мы попробуем применить полиморфизм на практике.
7 июня 2019 г.
Разработка API (контракта) для своей DLL
Или: не создавайте своих DLL, не прочитав эту статью!
Это статья по мотивам вопросов на форумах: "Как мне вернуть строку из DLL?", "Как передать и вернуть массив записей?", "Как передать в DLL форму?".
Чтобы вам не тратить половину жизни на разобраться - в этой статье я принесу всё на блюдечке.
Темы этой статьи в разной степени уже не раз затрагивались в этом блоге, но в этой статье они собраны в кучу, приведены обоснования. Короче, ссылкой на эту статью можно кидаться в тех, кто разрабатывает DLL.
Важное примечание: статью нужно читать последовательно. Примеры кода приводятся только как примеры, на каждом шаге (пункте) статьи код примеров добавляется новыми подробностями. Например, в самом начале статьи нет обработки ошибок, указываются "классические" способы (типа, использования
GetLastError
, соглашения sdtcall
и т.д.), которые по ходу статьи заменяются на более адекватные. Сделано так по той причине, чтобы "новые" ("необычные") конструкции не вызывали вопросов. Иначе при пришлось бы к каждому примеру вставлять примечание вида: "вот это обсуждается в том пункте ниже, а вот то - в этом вот". В любом случае в конце статьи есть ссылка на уже готовый код, написанный с учётом всего сказанного в статье. Можете просто его брать и использовать. А статья объясняет зачем и почему. Если вам не интересно "зачем и почему" - листайте в конец к заключению и ссылке на скачивание примера.19 декабря 2018 г.
Подписаться на:
Сообщения
(
Atom
)