Мастер приедет и решит Вашу проблему уже сегодня в 12 - 00
Вызвать мастераИзначально программирование было делом простым. Даже если программа создавалась на языке ассемблера, то ее структура ничем не отличалась, скажем, от Бейсика, Паскаля или Си. Программа начиналась сначала и продолжалась до конца, а всякие переходы к подпрограммам и прямые переходы по Goto были на совести самих программистов. Менялись парадигмы программирования, стиль, но это не мешало писать программы так, как нравится.
Но вот появилось ООП, за ним Windows, и стало ясно, что теперь программы в десяток строк можно забыть. А что делается внутри системы – один Гейтс знает. Постепенно популяризаторы сделали свое дело, и оказалось, что достаточно уяснить себе несколько важных моментов в технологии Windows, и все становится более-менее понятным. К примеру то, что ООП и Windows особо между собой не связаны, что и демонстрируют программисты, создавая программы на ассемблере для Win32. Если это пугает, то можно начать работу с FASM – там попроще будет.
Новые форматы программ – NE и PE – сделали структуру программ очень простой. Грубо говоря, теперь в них отсутствуют всяческие программные хитрости, а образ программы на диске собран из готовых кусков, загружаемых в память по своим адресам. Каждая программа четко сообщает о себе все сведения, включая данные ресурсов, списки импорта и экспорта внешних имен и библиотек. Так, просто взяв из таблицы список, можно с уверенностью сказать, что программа просит у Windows. Сам код тоже стал проще. Во-первых, в него почти не добавились новые команды процессоров. Во-вторых, многочисленные вызовы функций системы организованы по методу стека, то есть вся программа буквально пронизана вызовами внешних функций, за исключением циклов и вычисления выражений. Хакеры даже умудряются заменять в коде на диске одни функции на другие – иногда получается весело. Хотя в памяти это сделать еще проще.
Если смотреть на технологию обработки событий, то там тоже нет ничего ужасного. Просто нужно привыкнуть, что программа во время исполнения работает в зацикленном режиме, постоянно слушая команды Windows, поступающие ко всем окнам и процессам. Если программа понимает, что команда касается ее, она должна как-то отреагировать - для этого и вызывается программа обработки события. После этого программа дальше занимается своими делами. А можно, кстати, и вовсе игнорировать всякие интересные события, включив только обработку кнопок и меню. Так, например, по умолчанию работают с системами Delphi, VС++ и прочими системами. Единственное, что трудно воспринимать – это иерархия классов, и то только потому, что там слишком много возможностей, чтобы сходу запомнить, но можно работать вовсе без них.