Уроки Iczelion'а



         

Урок 2. MessageBox


В этом Урок е мы создадим полнофункциональную Windows программу, которое выводит сообщение "Win32 assembly is great!".

Скачайте пример здесь.

Теория:

Windows предоставляет огромное количество ресурсов Windows-программам через Windows ApI (Application programming Interface). Windows ApI - это большая коллекция очень полезная функций, располагающихся непосредственно в операционной системе, готовые для использования программами. Эти функции находятся в нескольких динамически подгружаемых библиотек (DLLs), таких как kernel32.dll, user32.dll и gdi32.dll. Kernel32.dll содержит AрI функции, взаимодействующие с памятью и управляющие процессами. User32.dll контролирует пользовательский интерфейс. Gdi32.dll ответственен за графические операции. Кроме этих трех "основных", существуют также другие dll, которые вы можете использовать, при условии, что вы обладаете достаточным количеством информации о нужных AрI функциях. Windows программы динамически подсоединяется к этим библиотекам, то есть код AрI функций не включается в исполняемый файл. Информация находится в библиотеках импорта. Вы должны слинковать ваши программы с правильными библиотеками импорта, иначе они не смогут найти эти функции. Когда Windows программа загружается в память, Windows читает информацию, сохраненную в в программе. Эта информация включает имена функций, которые программа использует и DLL-ей, в которых эти функции располагаются. Когда Windows находит подобную информацию в программе, она вызывает библиотеки и исправляет в программе вызовы этих функций, так что контроль всегда будет передаваться по правильному адресу. Существует две категории AрI функций: одна для ANSI и другая для Unicode. Hа конце имен AрI функций для ANSI стоит "A", например, MessageBox. В конце имен функций для Unicode находится "W". Windows 95 от природы поддерживает ANSI и WIndows NT Unicode. Мы обычно имеем дело с ANSI строками (массивы символов, оканчивающиеся NULL-ом. размер ANSI-символа - 1 байт. В то время как ANSI достаточна для европейских языков, она не поддерживает некоторые восточные языки, в которых есть несколько тысяч уникальных символов. Вот в этих случаях в дело вступает UniCode. pазмеp символа UNICODE - 2 байта, и поэтому может поддерживать 65536 уникальных символов. Hо по большей части, вы будете использовать include-файл, который может определить и выбрать подходящую для вашей платформы функцию. Просто обращайтесь к именам AрI функций без постфикса.




Содержание  Назад  Вперед