Мастер приедет и решит Вашу проблему уже сегодня в 12 - 00

Вызвать мастера

Особенности работы программ для Windows

Программирование под Windows

Изначально программирование было делом простым. Даже если программа создавалась на языке ассемблера, то ее структура ничем не отличалась, скажем, от Бейсика, Паскаля или Си. Программа начиналась сначала и продолжалась до конца, а всякие переходы к подпрограммам и прямые переходы по Goto были на совести самих программистов. Менялись парадигмы программирования, стиль, но это не мешало писать программы так, как нравится.

Но вот появилось ООП, за ним Windows, и стало ясно, что теперь программы в десяток строк можно забыть. А что делается внутри системы – один Гейтс знает. Постепенно популяризаторы сделали свое дело, и оказалось, что достаточно уяснить себе несколько важных моментов в технологии Windows, и все становится более-менее понятным. К примеру то, что ООП и Windows особо между собой не связаны, что и демонстрируют программисты, создавая программы на ассемблере для Win32. Если это пугает, то можно начать работу с FASM – там попроще будет.

Новые форматы программ – NE и PE – сделали структуру программ очень простой. Грубо говоря, теперь в них отсутствуют всяческие программные хитрости, а образ программы на диске собран из готовых кусков, загружаемых в память по своим адресам. Каждая программа четко сообщает о себе все сведения, включая данные ресурсов, списки импорта и экспорта внешних имен и библиотек.Программы под Windows Так, просто взяв из таблицы список, можно с уверенностью сказать, что программа просит у Windows. Сам код тоже стал проще. Во-первых, в него почти не добавились новые команды процессоров. Во-вторых, многочисленные вызовы функций системы организованы по методу стека, то есть вся программа буквально пронизана вызовами внешних функций, за исключением циклов и вычисления выражений. Хакеры даже умудряются заменять в коде на диске одни функции на другие – иногда получается весело. Хотя в памяти это сделать еще проще.

Если смотреть на технологию обработки событий, то там тоже нет ничего ужасного. Просто нужно привыкнуть, что программа во время исполнения работает в зацикленном режиме, постоянно слушая команды Windows, поступающие ко всем окнам и процессам. Если программа понимает, что команда касается ее, она должна как-то отреагировать - для этого и вызывается программа обработки события. После этого программа дальше занимается своими делами. А можно, кстати, и вовсе игнорировать всякие интересные события, включив только обработку кнопок и меню. Так, например, по умолчанию работают с системами Delphi, VС++ и прочими системами. Единственное, что трудно воспринимать – это иерархия классов, и то только потому, что там слишком много возможностей, чтобы сходу запомнить, но можно работать вовсе без них.