Выбрать главу

Поскольку в основном программа работала с вещественными числами, регистров общего назначения хватало с запасом. Чтобы подсократить размер экзешника, в самом начале программы я обнулял регистр EBX и использовал его везде, где это возможно, вместо константы 0. Всё тот же STDCALL этого не запрещает: вызываемые функции значение этого регистра сохраняют, так что оказалось действительно удобно. Есть только одна проблема: внутри себя функции WinAPI этот регистр активно используют, а соглашение вызова не обязывает их восстанавливать его значение перед вызовом callback-функций.

Моя ошибка оказалась в том, что в оконной процедуре (а с точки зрения User32.dll она как раз и есть callback) я забыл прописать явное обнуление EBX. На тех компьютерах, где программа работала корректно, мне просто везло: значение регистра оставалось нулевым. На остальных же системах там оказывалось ненулевое значение, которое успешно использовалось вместо всех нулей во многих процедурах программы. Одна строчка кода, два байта в экзешнике — полгода спустя они обрели своё место в коде, но было уже поздно.

Обнуляйте переменные и регистры — и будет вам счастье!

#9274: Заразите всё обратно

13:00 28.05.2012, IT happens

Звонок от одного из пользователей:

— Алло, как закрыть антивирус, не сохраняя?

Долгое молчание на нашей стороне.

#9275: Глюков не видать

13:00 28.05.2012, IT happens

Лет этак девять назад я работал в фирме районного масштаба по продаже и ремонту компьютеров. Приходит мужик с сыном лет десяти и приносит комп. Говорит, что внезапно винды перестали грузиться.

Ну, дело обычное — берём на диагностику, прогоняем тесты и обнаруживаем, что хард покрыт бэдами чуть меньше, чем полностью. Ставим новый хард. Заказчик с сыном приходит забирать. Отдаём комп и убитый HDD.

— А зачем мне убитый винчестер? — спрашивает мужик.

— Ну, нам он без надобности. Отдайте сыну, пускай разберёт, посмотрит, что там внутри.

— Да я уже его разбирал… — говорит сынуля.

Пауза. Звук громкой затрещины.

#9276: По бороздкам коврика для мыши

13:00 28.05.2012, IT happens

Сегодня убедился, что бухгалтера — роботы.

У бухши сгорел монитор в тот момент, когда она считала зарплату всей фирме. При отрубленном мониторе она сумела сохранить все данные, закрыть 1С и корректно выключить комп. Только после этого героическая женщина позвала админа.

#9277: Win32.Vse.Dlya.Tebya

15:00 28.05.2012, IT happens

Рассказали мне тут о совершенно неубиваемом вирусе. Когда компьютер его ловит, пользователь не в состоянии сделать вообще ничего. Друзья-программисты в панике убегают. Суровые компьютерщики советуют больше никогда не включать компьютер и купить новый.

Дело в том, что вирус при запуске компьютера показывает клип Стаса Михайлова.

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

#9278: Незабываемые мегапиксели

15:00 28.05.2012, IT happens

Служебная записка от руководителя отдела рекламы руководителю отдела IT:

В связи с производственной необходимостью прошу модернизировать компьютеры, увеличить размеры памяти сотрудников отдела маркетинга и рекламы для работы с графическими файлами.

C уважением, N.

#9279: Не плакала и не кололась

16:45 28.05.2012, IT happens

Было это году в 2004-м. Мой товарищ работал в небольшой конторке, торгующей дорогими брендовыми компьютерами.

И вот как-то приходит к ним тётенька — солидная и явно богатая. Собирают ей навороченный системник, добавляют немаленький ЭЛТ-монитор, и тут эта особа спрашивает:

— А экран защитный можно?

— Какой экран?

— Ну, на монитор.

— А… Так их не делают давным-давно. Нынешние мониторы излучают совсем мало, да и защитный слой изначально встроен во все модели.

— Вы меня не обманете! Я точно знаю, что надо защищать себя от радиации!

В общем поняли инженеры, что спорить бесполезно, и самый смекалистый рванул в ближайший цветочный магазин. Там за сто рублей купил симпатичный кактус в хайтечного вида горшочке. Уже на месте на него наклеили оригинальные стикеры «Intel Inside», «Powered by Asus» и «Designed for Windows». В таком виде кактус и был предъявлен тётеньке, которая сразу просияла: