ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС Π² срСдС Microsoft Visual C++ с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC. 
Записная ΠΊΠ½ΠΈΠΆΠΊΠ° адрСсов элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΎΡˆΠ»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»ΡƒΠ²Π΅ΠΊΠ° с Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΊΠ°ΠΊ появились ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π­Π’Πœ. Но Π΅ΡΠ»ΠΈ Π² ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π³ΠΎΠ΄Ρ‹ своСго сущСствования Π­Π’Πœ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ помСщСния ΠΈ ΠΈΠΌΠ΅Π»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ·ΠΊΡƒΡŽ сфСру примСнСния, Ρ‚ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π­Π’Πœ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΈΡΡŒ (Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ возросла Π² Ρ‚ысячи Ρ€Π°Π·), Ρ‡Ρ‚ΠΎ соврСмСнная Π­Π’Πœ (ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€) свободно умСщаСтся Π½Π° Π΄ΠΎΠΌΠ°ΡˆΠ½Π΅ΠΌ столС. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π­Π’Πœ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ…, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС Π² срСдС Microsoft Visual C++ с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC. Записная ΠΊΠ½ΠΈΠΆΠΊΠ° адрСсов элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ записка ΠΊ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС Π² срСдС Microsoft Visual C++ с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC. Записная ΠΊΠ½ΠΈΠΆΠΊΠ° адрСсов элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹

Аннотация

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ windows ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’ Π΄Π°Π½Π½ΠΎΠΌ курсовом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π° Ρ‚Π΅ΠΌΡƒ «ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС Π½Π° Microsoft Visual C++ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC» ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ выполнСния поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ являСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ дСйствия Π½Π°Π΄ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ записСй, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ, поиск ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска. Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° срСда программирования Microsoft Visual C++ 6.0, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π” пСрСнСсСны ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ CLR. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список адрСсов элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, Π³Π΄Π΅ хранится вся информация ΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°Ρ….

ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ записка содСрТит 45 страниц, 1 Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, 7 рисунков ΠΈ 2 прилоТСния

1. ВСорСтичСскиС основы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC

1.1 ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния

1.2 Visual C++6 ΠΈ MFC

1.3 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Windows

1.4 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ динамичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (DLL)

1.5 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ GDI

1.6 ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Windows

1.7 Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Windows

1.8 Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Windows

1.9 ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования MFC

1.10 АрхитСктура прилоТСния

1.11 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ прилоТСния

1.12 Доступ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…

2. БпСцификация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.1 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.2 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

2.3 ОписаниС логичСской структуры прилоТСния

2.4 ВрСбования ΠΊ Ρ‚СхничСскому ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ

2.5 Установка ΠΈ Π·Π°ΠΏΡƒΡΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.6 Π Π°Π±ΠΎΡ‚Π° с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ

2.7 Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

2.8 Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

2.9 ОписаниС тСстовых ΠΏΡ€ΠΎΠ³ΠΎΠ½ΠΎΠ² Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, А ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘

Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹ всС большСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°Π΅Ρ‚ использованиС Π­Π’Πœ (ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°). ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ…, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ сСйчас Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π°ΠΉΡ‚ΠΈ прСдприятиС, ΡˆΠΊΠΎΠ»Ρƒ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡŒΠ½ΠΈΡ†Ρƒ, Π³Π΄Π΅ Π±Ρ‹ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Π’ Π½Π°ΡˆΠΈ Π΄Π½ΠΈ ΠΈ Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΎΠ±Ρ€Π΅Ρ‚Π°Π΅Ρ‚ всС большСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡ€ΠΎΠΉ становится Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ Π΄Π°ΠΆΠ΅ Π² Π±Ρ‹Ρ‚Ρƒ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС (ПО) — Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π­Π’Πœ. ПО ΡΠ΅Π³ΠΎΠ΄Π½Ρ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ, ΠΊΠ°ΠΊ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ примСнСния, Ρ‚Π°ΠΊ ΠΈ Π² ΡΠ²ΠΎΠ΅ΠΉ слоТности-ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Windows-прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список адрСсов элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ этом Π±Ρ‹Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ понятия ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ знания Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠΊΠ°Π·Π°Ρ‚Слями Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠ°ΡΡ‚Π΅Ρ€Π°ΠΌΠΈ MFC AppWizard, ClassWizard.

1. ВСорСтичСскиС основы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC

1.1 ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния

Π’ связи с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ сСгодня ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΎΡ‡Π΅Π½ΡŒ высок, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ языка программирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, языка C) Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ затрудняСтся. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ массу Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ стандартных Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ интСрфСйса. РСализация Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ связывания ΠΈ Π²ΡΡ‚раивания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — OLE — ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π° Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ слоТной Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ программиста практичСски всС соврСмСнныС компиляторы с ΡΠ·Ρ‹ΠΊΠ° C++ содСрТат ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ классов. Π’Π°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² ΡΠ΅Π±Ρ практичСски вСсь ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс Windows ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ срСдствами Π±ΠΎΠ»Π΅Π΅ высокого уровня, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π—Π° ΡΡ‡Π΅Ρ‚ этого Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упрощаСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… слоТный интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, облСгчаСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ OLE ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс создания прилоТСния. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° Π²ΠΎΠΏΡ€ΠΎΡΡ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ свойства прилоТСния — ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ OLE, Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΎΡ€Π³Π°Π½Ρ‹ управлСния, ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ систСму. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, создаст ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π΅ трСбованиям, ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ исходныС тСксты. ΠŸΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ ΠΈΠΌ ΠΊΠ°ΠΊ шаблоном, программист смоТСт быстро Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ свои прилоТСния.

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Microsoft Visual C++ ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ся MFC AppWizard. Π—Π°ΠΏΠΎΠ»Π½ΠΈΠ² нСсколько Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ характСристики прилоТСния ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ тСксты, снабТСнныС ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΌΠΈ коммСнтариями. MFC AppWizard позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ прилоТСния, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, вмСсто Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ диалоговая панСль. МоТно Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ OLE, Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, справочной систСмы.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, MFC AppWizard Π½Π΅ Π²ΡΠ΅ΡΠΈΠ»Π΅Π½. ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ прилоТСния программисту придСтся Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст прилоТСния, созданный MFC AppWizard, станСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основой, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅. Но Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ шаблон прилоТСния — это ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° всСй Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ тСксты ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, автоматичСски ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ MFC AppWizard, ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сотни строк тСкста. Набор Π΅Π³ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π±Ρ‹Π» Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»Π΅Π½.

НуТно ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ MFC AppWizard создаСт тСксты ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ классов MFC (Microsoft Foundation Class library). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΠ² язык C++ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MFC, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ срСдствами Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои прилоТСния Π² ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠ΅ сроки.

MFC — это Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°) классов, написанных Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++ ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для упрощСния ΠΈ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΡ процСсса программирования ΠΏΠΎΠ΄ Windows. ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC ΠΈ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ для создания Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, слСдуСт Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сама Windows ΠΈ ΠΊΠ°ΠΊΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ взаимодСйствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с Π½Π΅ΠΉ, ΠΊΠ°ΠΊΠΎΠ²Π° структура Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Благодаря интСрфСйсу Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Windows доступ ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹ΠΌ рСсурсам осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Ρ†Π΅Π»Ρ‹ΠΉ Ρ€Π°Π΄ систСмных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π‘ΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ называСтся ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ интСрфСйсом, ΠΈΠ»ΠΈ API (Application Programming Interfase). Для взаимодСйствия с Windows ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ API, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ систСмныС дСйствия, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти, Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΡΠΊΡ€Π°Π½, созданиС ΠΎΠΊΠΎΠ½ ΠΈ Ρ‚. ΠΏ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° MFC инкапсулируСт ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ API. Π₯отя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, всС ΠΆΠ΅ Ρ‡Π°Ρ‰Π΅ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹ Π»ΠΈΠ±ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ функциям API, Π»ΠΈΠ±ΠΎ нСпосрСдствСнно ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΉ части интСрфСйса.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ API состоит ΠΈΠ· Π±ΠΎΠ»ΡŒΡˆΠΎΠ³ΠΎ числа Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ компиляции ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанной для Windows, ΠΊ Π½Π΅ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊΠΎΠ΄ довольно Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ объСма. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ это Π½Π΅ Ρ‚Π°ΠΊ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ API содСрТатся Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… динамичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (Dynamic Link Libraries, ΠΈΠ»ΠΈ DLL), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΊ Π½ΠΈΠΌ происходит ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, Ρ‚. Π΅. ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Рассмотрим, ΠΊΠ°ΠΊ осущСствляСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ динамичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

ДинамичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° обСспСчиваСт ряд сущСствСнных прСимущСств. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ практичСски всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Ρ DLL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ сущСствСнно экономится дисковоС пространство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС занималось Π±Ρ‹ большим количСством ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°, содСрТащСгося Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, измСнСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² Windows-прилоТСниях сводятся ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ содСрТимого DLL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π£ΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ тСксты ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ пСрСкомпиляции [4]

Π’ Π½Π°ΡΡ‚оящСС врСмя ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСны Π΄Π²Π΅ вСрсии API. ΠŸΠ΅Ρ€Π²Π°Ρ называСтся Win16 ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт собой 16-Ρ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Π² Windows 3.1. Вторая, 32-разрядная вСрсия, называСтся Win32 ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся Π² Windows 95 ΠΈ Windows NT. Win32 являСтся надмноТСством для Win16 (Ρ‚.Π΅. фактичСски Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ этот интСрфСйс), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Однако, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ, ΠΎΠ±Π° интСрфСйса всС ΠΆΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. Win32 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ 32-Ρ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Win16 Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с 16-разрядной сСгмСнтированной модСлью памяти. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Ρ‹Π»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ 32-разрядныС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ 32-разрядныС значСния. Π§Π°ΡΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ 32-разрядной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. Π‘Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ многозадачности, Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов интСрфСйса ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ Windows.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Win32 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ 32-Ρ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ, Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (intergers) Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ 32-разрядными. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° int ΠΈ unsignerd Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ 32 Π±ΠΈΡ‚Π°, Π° Π½Π΅ 16, ΠΊΠ°ΠΊ Π² Windows 3.1. Если ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ константу Π΄Π»ΠΈΠ½ΠΎΠΉ 16 Π±ΠΈΡ‚, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊ short. (дальшС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ для этих Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ нСзависимыС typedef-ΠΈΠΌΠ΅Π½Π°.) Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ пСрСносС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ· 16-разрядной срСды Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ использования цСлочислСнных элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ Π΄ΠΎ 32 Π±ΠΈΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ цСлочислСнных элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ Π΄ΠΎ 32 Π±ΠΈΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡŽ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов.

Π”Ρ€ΡƒΠ³ΠΈΠΌ слСдствиСм 32-разрядной адрСсации являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊ near ΠΈ far. Π›ΡŽΠ±ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ участку памяти. Π’ Windows 95 ΠΈ Windows NT константы near ΠΈ far ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #define)пустыми [5]

Одним ΠΈΠ· ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π² API являСтся GDI (Graphics Device Interfase — интСрфСйс графичСского устройства). GDI — это Ρ‚Π° Ρ‡Π°ΡΡ‚ΡŒ Windows, которая обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-нСзависимой Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. Благодаря функциям GDI Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° ΡΠ°ΠΌΡ‹Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ….

Как извСстно, всС вСрсии Windows ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ. Π’ Windows 3.1 имССтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ многозадачности — основанный Π½Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°Ρ…. Π’ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… систСмах, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Windows 95 ΠΈ Windows NT, поддСрТиваСтся Π΄Π²Π° Ρ‚ΠΈΠΏΠ° многозадачности: основанный Π½Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°Ρ… ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ…. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΈΡ… Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая выполняСтся. ΠŸΡ€ΠΈ многозадачности Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΠ½ΠΈ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ рСсурсы Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора ΠΈ Ρ Ρ‚СхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Ρ высокой скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° это практичСски Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ.

ΠŸΠΎΡ‚ΠΎΠΊ — это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ исполняСмого ΠΊΠΎΠ΄Π°. НазваниС ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΎΡ‚ ΠΏΠΎΠ½ΡΡ‚ия «Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ протСкания процСсса». Π’ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ВсС процСссы ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ, Π½ΠΎ Π² Windows 95 ΠΈ Windows NT ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько.

ΠžΡ‚ΡΡŽΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ Π² Windows 95 ΠΈ Windows NT допускаСтся сущСствованиС процСссов, Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ частСй ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ€Π½ΠΎ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΡΡ‚ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… частСй самих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π­Ρ‚ΠΎ позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ эффСктивныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ сущСствСнноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ многозадачностями Windows 3.1 ΠΈ Windows 95/NT. Π’ Windows 3.1 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нСприоритСтная ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ процСсс, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора ΠΈ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΡ… Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π΅ΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°ΡΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ всС рСсурсы процСссора ΠΈ Π½Π΅ Π΄Π°Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌ процСссам. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΡΡ‚ΠΎΠ³ΠΎ Π² Windows 95 ΠΈ Windows NT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ приоритСтная ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ. Π’ ΡΡ‚ΠΎΠΌ случаС ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ прСдоставляСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ процСссора. По ΠΈΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ автоматичСски пСрСдаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. Π­Ρ‚ΠΎ Π½Π΅ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ рСсурсы процСссора. Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ понятно, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ способ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»Π΅Π½.

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ систСмой ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. НапримСр, Π² DOS ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…. Говоря Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π½Π΅Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сами Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму. ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ процСсса Π½Π΅ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚. Π’ Windows всС ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚: ΠΈΠΌΠ΅Π½Π½ΠΎ систСма Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π­Ρ‚ΠΎ осущСствляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ получСния сообщСния ΠΎΡ‚ Windows. Когда это происходит, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ дСйствиС. ПослС Π΅Π³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ сообщСния.

Windows ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ сообщСния мноТСства Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². НапримСр, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΌΡ‹ΡˆΡŒΡŽ Π² ΠΎΠΊΠ½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ посылаСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС. Π”Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏ сообщСний посылаСтся, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ содСрТимоС Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. БообщСния ΠΏΠΎΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π²Π²ΠΎΠ΄Π° с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. НСобходимо Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ: ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ сообщСния ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ сообщСниС ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

ΠŸΡ€ΠΎΡˆΠ»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»ΡƒΠ²Π΅ΠΊΠ° с Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΊΠ°ΠΊ появились ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π­Π’Πœ. Но Π΅ΡΠ»ΠΈ Π² ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π³ΠΎΠ΄Ρ‹ своСго сущСствования Π­Π’Πœ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ помСщСния ΠΈ ΠΈΠΌΠ΅Π»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ·ΠΊΡƒΡŽ сфСру примСнСния, Ρ‚ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π­Π’Πœ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΈΡΡŒ (Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ возросла Π² Ρ‚ысячи Ρ€Π°Π·), Ρ‡Ρ‚ΠΎ соврСмСнная Π­Π’Πœ (ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€) свободно умСщаСтся Π½Π° Π΄ΠΎΠΌΠ°ΡˆΠ½Π΅ΠΌ столС. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π­Π’Πœ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ…, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ сСйчас Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π°ΠΉΡ‚ΠΈ прСдприятиС, ΡˆΠΊΠΎΠ»Ρƒ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡŒΠ½ΠΈΡ†Ρƒ, Π³Π΄Π΅ Π±Ρ‹ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»Π°ΡΡŒ Π­Π’Πœ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Π’ Ρ…ΠΎΠ΄Π΅ становлСния Ρ€Ρ‹Π½ΠΎΡ‡Π½Ρ‹Ρ… экономичСских ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΡΡ Ρ€Ρ‹Π½ΠΎΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Π·Π° ΡΡ‡Ρ‘Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π½Π΅Π³ΠΎ срСдних ΠΈ ΠΌΠ°Π»Ρ‹Ρ… прСдприятий. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… спСциалистах Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ экономичСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ Ρ‚рСбования ΠΊ ΡƒΡ€ΠΎΠ²Π½ΡŽ ΠΈΡ… ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ. Π’Π°ΠΊΠΎΠΉ спСциалист Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΌΠ΅Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ трСбования ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ срСдствам, ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ срСдства, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ запросам ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π°, Π² Ρ€ΡΠ΄Π΅ случаСв, ΠΈ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΈΠ·Π΄Π΅Π»ΠΈΠΉ ΠΈΠ»ΠΈ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ условиям ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм (ПО) Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ, ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΈΡ…, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡. Π Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ систСмноС (ΠΎΠ±Ρ‰Π΅Π΅) ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ (ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС.

БистСмноС ΠŸΠž Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для согласования Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСго Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ комплСкса ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. По Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ½ΠΎΠΌ ΠŸΠž Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, систСму программирования, систСмныС ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, срСдства контроля ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΠΊΠΈ Π­Π’Πœ. Под систСмой программирования ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ комплСкс срСдств для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’ ΡΠΈΡΡ‚Π΅ΠΌΡƒ программирования Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ языки программирования, трансляторы, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для рСдактирования тСкстов ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

1.2 Visual C++6 ΠΈ MFC

Visual C++6 прСдставляСт собой ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ ΡΠ»ΠΎΠΆΠ½Ρ‹ΠΉ инструмСнт для создания 32-разрядных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows. Π­Ρ‚ΠΈ прилоТСния Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ прСвосходят ΠΊΠ°ΠΊ ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ своих ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠ² для 16-разрядной Windows ΠΈ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Ρ€Π΅Π²Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π±Π΅Π· графичСского интСрфСйса. Но, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ объСм ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ, для ΠΈΡ… ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π° трСбуСтся Π½Π΅ Π±ΠΎΠ»ΡŒΡˆΠ΅, Π° ΠΌΠ΅Π½ΡŒΡˆΠ΅ усилий. ИмСнно Ρ‚Π°ΠΊΠΈΠΌ инструмСнтом являСтся Visual C++6. ΠžΡΠ½Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… мастСров (Wizard), Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, этот ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ позволяСт Π² ΡΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Π΅ сСкунды ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΠΏΠΎΠ»Π½Π΅ работоспособноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Windows. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² ΡΠΎΡΡ‚Π°Π² Visual C++6 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° классов Microsoft Foundation Classes (MFC) ΡƒΠΆΠ΅ стала фактичСски стандартом для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² компиляторов Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ процСсс ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… мСню ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½ Π² Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ занятиС [6]

Π’ ΡΠ²ΡΠ·ΠΈ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ сСгодня ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΎΡ‡Π΅Π½ΡŒ высок, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ языка программирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, языка C) Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ затрудняСтся. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ массу Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ стандартных Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ интСрфСйса. РСализация Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ связывания ΠΈ Π²ΡΡ‚раивания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — OLE — ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π° Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ слоТной Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ программиста практичСски всС соврСмСнныС компиляторы с ΡΠ·Ρ‹ΠΊΠ° C++ содСрТат ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ классов. Π’Π°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² ΡΠ΅Π±Ρ практичСски вСсь ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс Windows ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ срСдствами Π±ΠΎΠ»Π΅Π΅ высокого уровня, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π—Π° ΡΡ‡Π΅Ρ‚ этого Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упрощаСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… слоТный интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, облСгчаСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ OLE ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс создания прилоТСния. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° Π²ΠΎΠΏΡ€ΠΎΡΡ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ свойства прилоТСния — ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ OLE, Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΎΡ€Π³Π°Π½Ρ‹ управлСния, ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ систСму. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, создаст ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π΅ трСбованиям, ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ исходныС тСксты. ΠŸΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ ΠΈΠΌ ΠΊΠ°ΠΊ шаблоном, программист смоТСт быстро Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ свои прилоТСния .

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Microsoft Visual C++ ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ся MFC AppWizard. Π—Π°ΠΏΠΎΠ»Π½ΠΈΠ² нСсколько Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ характСристики прилоТСния ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ тСксты, снабТСнныС ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΌΠΈ коммСнтариями. MFC AppWizard позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ прилоТСния, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, вмСсто Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ диалоговая панСль. МоТно Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ OLE, Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, справочной систСмы.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, MFC AppWizard Π½Π΅ Π²ΡΠ΅ΡΠΈΠ»Π΅Π½. ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ прилоТСния программисту придСтся Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст прилоТСния, созданный MFC AppWizard, станСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основой, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅. Но Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ шаблон прилоТСния — это ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° всСй Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ тСксты ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, автоматичСски ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ MFC AppWizard, ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сотни строк тСкста. Набор Π΅Π³ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π±Ρ‹Π» Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»Π΅Π½.

НуТно ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ MFC AppWizard создаСт тСксты ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ классов MFC (Microsoft Foundation Class library). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΠ² язык C++ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MFC, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ срСдствами Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои прилоТСния Π² ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠ΅ сроки.

MFC — это Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°) классов, написанных Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++ ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для упрощСния ΠΈ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΡ процСсса программирования ΠΏΠΎΠ΄ Windows.

1.3 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Windows

Благодаря Π΄Π°Π½Π½ΠΎΠΌΡƒ интСрфСйсу доступ ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹ΠΌ рСсурсам осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Ρ†Π΅Π»Ρ‹ΠΉ ряд систСмных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π‘ΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ называСтся ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ интСрфСйсом, ΠΈΠ»ΠΈ API (Application Programming Interfase). Для взаимодСйствия с Windows ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ API, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ систСмныС дСйствия, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти, Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΡΠΊΡ€Π°Π½, созданиС ΠΎΠΊΠΎΠ½ ΠΈ Ρ‚. ΠΏ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° MFC инкапсулируСт ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ API. Π₯отя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, всС ΠΆΠ΅ Ρ‡Π°Ρ‰Π΅ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹ Π»ΠΈΠ±ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ функциям API, Π»ΠΈΠ±ΠΎ нСпосрСдствСнно ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΉ части интСрфСйса.

1.4 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ динамичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (DLL)

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ API состоит ΠΈΠ· Π±ΠΎΠ»ΡŒΡˆΠΎΠ³ΠΎ числа Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ компиляции ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанной для Windows, ΠΊ Π½Π΅ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊΠΎΠ΄ довольно Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ объСма. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ это Π½Π΅ Ρ‚Π°ΠΊ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ API содСрТатся Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… динамичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (Dynamic Link Libraries, ΠΈΠ»ΠΈ DLL), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΊ Π½ΠΈΠΌ происходит ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, Ρ‚. Π΅. ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Рассмотрим, ΠΊΠ°ΠΊ осущСствляСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ динамичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

ДинамичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° обСспСчиваСт ряд сущСствСнных прСимущСств. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ практичСски всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Ρ DLL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ сущСствСнно экономится дисковоС пространство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС занималось Π±Ρ‹ большим количСством ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°, содСрТащСгося Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, измСнСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² Windows-прилоТСниях сводятся ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ содСрТимого DLL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π£ΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ тСксты ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ пСрСкомпиляции.

1.5 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ GDI

Одним ΠΈΠ· ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π² API являСтся GDI (Graphics Device Interfase — интСрфСйс графичСского устройства). GDI — это Ρ‚Π° Ρ‡Π°ΡΡ‚ΡŒ Windows, которая обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-нСзависимой Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. Благодаря функциям GDI Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° ΡΠ°ΠΌΡ‹Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ….

1.6 ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Windows

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ основана Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ сообщСний, всС эти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ содСрТат Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡ… ΠΏΡ€ΠΈΡ…одится Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Но, ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΠΏΡ€ΠΈ использовании Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC это происходит автоматичСски; Π½Π΅Ρ‚ нСобходимости Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя ΠΈ ΡƒΡΠΈΠ»ΠΈΡ Π½Π° ΠΈΡ… Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, написанная с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ MFC, ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΠΎΠ½ΡΡ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Ѐункция WinMain (). ВсС Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ WinMain (). ΠŸΡ€ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ программирования это Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ явно. Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC такая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚, Π½ΠΎ Ρ„ункция всС-Ρ‚Π°ΠΊΠΈ сущСствуСт.

Ѐункция ΠΎΠΊΠ½Π°. ВсС Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся Π² ΡΠ°ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ся самой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой. Π­Ρ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΠΊΠ½Π°, ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ ΠΎΠΊΠ½Π°. Она вызываСтся Windows, ΠΊΠΎΠ³Π΄Π° систСмС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ сообщСниС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. ИмСнно Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π΅ осущСствляСтся взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ. Ѐункция ΠΎΠΊΠ½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ сообщСниС Π² ΡΠ²ΠΎΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…. Богласно Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Windows, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ систСмой, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ функциями ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, функция ΠΎΠΊΠ½Π° являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°.

Помимо принятия сообщСния ΠΎΡ‚ Windows, функция ΠΎΠΊΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ дСйствия, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° Π²ΡΠ΅ сообщСния, посылаСмыС Windows. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сотни, Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ сообщСний ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ обрабатываСтся самой систСмой, Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ достаточно ΠΏΠΎΡ€ΡƒΡ‡ΠΈΡ‚ΡŒ Windows Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дСйствия, прСдусмотрСнныС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π·Π°Π΄Π°Ρ‡Π° создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΊΠ½Π° Π»Π΅ΠΆΠΈΡ‚ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π΅. ΠŸΡ€ΠΈ использовании Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC такая функция создаСтся автоматичСски. Π’ ΡΡ‚ΠΎΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Но Π² Π»ΡŽΠ±ΠΎΠΌ случаС, Ссли сообщСниС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ дСйствиС. Π₯отя ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ для этого ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, само дСйствиС Π±Ρ‹Π»ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Windows. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ способ взаимодСйствия с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Ρ‡Π΅Ρ€Π΅Π· сообщСния Π΄ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ построСния всСх ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Windows, написанных ΠΊΠ°ΠΊ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ MFC, Ρ‚Π°ΠΊ ΠΈ Π±Π΅Π· Π½Π΅Π΅.

Π¦ΠΈΠΊΠ» сообщСний. Windows взаимодСйствуСт с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, посылая Π΅ΠΉ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡ. ВсС прилоТСния Windows Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ†ΠΈΠΊΠ» сообщСний (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ WinMain ()). Π’ ΡΡ‚ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ сообщСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΎ ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ сообщСний Π΄Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π½Π°Π·Π°Π΄ Π² Windows, которая Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π΄Π°Π½Π½Ρ‹ΠΌ сообщСниСм Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π’ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ†ΠΈΠΊΠ». ΠŸΡ€ΠΈ использовании MFC это Ρ‚Π°ΠΊΠΆΠ΅ выполняСтся автоматичСски. Однако Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» сообщСний всС ΠΆΠ΅ сущСствуСт. Он ΡΠ²Π»ΡΠ΅Ρ‚ся Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ любого прилоТСния Windows

ΠŸΡ€ΠΎΡ†Π΅ΡΡ получСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ чСрСсчур слоТным, Π½ΠΎ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ всС Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΠΏΡ€ΠΈ использовании Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ частных Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ скрыты ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°, хотя ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ нСявно ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Класс ΠΎΠΊΠ½Π°. КаТдоС ΠΎΠΊΠ½ΠΎ Π² Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ характСризуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ классом ΠΎΠΊΠ½Π°. (ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ «ΠΊΠ»Π°ΡΡ» Π½Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π² Π‘++. Оно, скорСС, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΡ‚ΠΈΠ»ΡŒ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ.) Π’ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ класс ΠΎΠΊΠ½Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΈ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ создано ΠΎΠΊΠ½ΠΎ. ΠŸΡ€ΠΈ рСгистрации Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Windows, ΠΊΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ ΠΈ ΠΊΠ°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ½ΠΎ выполняСт. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя рСгистрация класса ΠΎΠΊΠ½Π° Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ созданиС самого ΠΎΠΊΠ½Π°. Для этого трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия. ΠŸΡ€ΠΈ использовании Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнный класс ΠΎΠΊΠ½Π° Π½Π΅Ρ‚ нСобходимости. ВмСсто этого ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… классов, описанных Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅. Π’ ΡΡ‚ΠΎΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ Π΅Π΅ ΠΏΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ.

1.7 Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Windows

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ отличаСтся ΠΎΡ‚ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΎ Π²Ρ‹Π·Π²Π°Π½ΠΎ двумя ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°ΠΌΠΈ: Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, способом взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈ Windows, описанным Π²Ρ‹ΡˆΠ΅; Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡ‚ΡŒΡΡ для создания стандартного интСрфСйса Windows-прилоТСния (Ρ‚.Π΅. Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ «ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ «Π½Π° Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅).

ЦСль Windows — Π΄Π°Ρ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ хотя Π±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌ с ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ΅ΡΡ‚ΡŒ Π·Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ любоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ. Для этого Windows прСдоставляСт друТСствСнный интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ВСорСтичСски, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сумСл Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ ΠΎΠ½ ΡΡƒΠΌΠ΅Π΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ Π»ΡŽΠ±ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ придСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ. Однако это связано ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄Π΅Π»Π°Π΅Ρ‚, Π° Π½Π΅ с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Сю ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π’Π΅Π΄ΡŒ, фактичСски, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Windows-прилоТСния ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ интСрфСйса с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π₯отя созданиС ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ интСрфСйса «ΠΏΠΎΠ΄ Windows» являСтся основной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΏΡ€ΠΈ написании любой Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊΠΎΠΉ интСрфСйс Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ‚ся автоматичСски. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ элСмСнты интСрфСйса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ нСэффСктивно. Π§Ρ‚ΠΎΠ±Ρ‹ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΡƒ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅. Волько ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Ρ‚Π°ΠΊΠΈΠΌ способом, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠΉΡ‚ΠΈ ΠΎΡ‚ Ρ„илософии создания Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Windows-интСрфСйса, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ достаточно вСскиС основания. Π˜Π½Π°Ρ‡Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½Ρ‹. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, Ссли программист собираСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ прилоТСния для Windows, Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ интСрфСйсом ΠΈ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒΡΡ стандартной ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

1.8 Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Windows

Π’ Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π²ΠΎΠΎΠ±Ρ‰Π΅ (ΠΈ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MFC Π² Ρ‡Π°ΡΡ‚ности) Π½Π΅ ΡΠ»ΠΈΡˆΠΊΠΎΠΌ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ стандартныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π‘ ΠΈΠ»ΠΈ Π‘++, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ int ΠΈΠ»ΠΈ char*. ВмСсто Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… (header) Ρ„Π°ΠΉΠ»Π°Ρ…. НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ HANDLE, HWND, BYTE, WORD, DWORD, UNIT, LONG, BOOL, LPSTR ΠΈ LPCSTR. Π’ΠΈΠΏ HANDLE ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ 32-разрядноС Ρ†Π΅Π»ΠΎΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ дСскриптора. Π•ΡΡ‚ΡŒ нСсколько ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Ρƒ ΠΆΠ΅ Π΄Π»ΠΈΠ½Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈ HANDLE, ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ся с Π»ΠΈΡ‚Π΅Ρ€Ρ‹ Н. ДСскриптор — это просто число, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рСсурс. НапримСр, Ρ‚ΠΈΠΏ HWND ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ 32-разрядноС Ρ†Π΅Π»ΠΎΠ΅ — дСскриптор ΠΎΠΊΠ½Π°. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MFC, дСскрипторы ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎ, ΠΊΠ°ΠΊ это ΠΈΠΌΠ΅Π΅Ρ‚ мСсто Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Π’ΠΈΠΏ BYTE ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ 8-разрядноС Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ символьноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΈΠΏ WORD — 16-разрядноС Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅, Ρ‚ΠΈΠΏ DWORD — Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅, Ρ‚ΠΈΠΏ UNIT — Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 32-разрядноС Ρ†Π΅Π»ΠΎΠ΅. Π’ΠΈΠΏ LONG эквивалСнтСн Ρ‚ΠΈΠΏΡƒ long. Π’ΠΈΠΏ BOOL ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ истинным, Π»ΠΈΠ±ΠΎ Π»ΠΎΠΆΠ½Ρ‹ΠΌ. Π’ΠΈΠΏ LPSTR опрСдСляСт ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΡ‚Ρ€ΠΎΠΊΡƒ, Π° LPCSTR — константный (const) ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΡ‚Ρ€ΠΎΠΊΡƒ [9]

1.9 ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования MFC

MFC — это Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°) классов, написанных Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++ ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для упрощСния ΠΈ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΡ процСсса программирования для Windows. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° содСрТит ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ классов, Π½Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΎΠΊΠΎΠ»ΠΎ 200 Ρ‡Π»Π΅Π½ΠΎΠ². Они Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Windows-прилоТСния Π½Π° Π±Π°Π·Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния программиста, MFC прСдставляСт собой каркас, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Windows.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° MFC Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»Π°ΡΡŒ для упрощСния Π·Π°Π΄Π°Ρ‡, стоящих ΠΏΠ΅Ρ€Π΅Π΄ программистом. Как извСстно, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ программирования ΠΏΠΎΠ΄ Windows Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ написания достаточно Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΈ ΡΠ»ΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ряд спСцифичСских особСнностСй. Π’ Ρ‡Π°ΡΡ‚ности, для создания Ρ‚ΠΎΠ»ΡŒΠΊΠΎ каркаса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ понадобится ΠΎΠΊΠΎΠ»ΠΎ 75 строк ΠΊΠΎΠ΄Π°. По ΠΌΠ΅Ρ€Π΅ ΠΆΠ΅ увСличСния слоТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΅Π΅ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ поистинС нСвСроятных Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ². Однако Ρ‚Π° ΠΆΠ΅ ΡΠ°ΠΌΠ°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, написанная с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ MFC, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° мСньшС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ частных Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ скрыто ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°.

Одним ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… прСимущСств Ρ€Π°Π±ΠΎΡ‚Ρ‹ с MFC являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ использования ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° содСрТит ΠΌΠ½ΠΎΠ³ΠΎ элСмСнтов, ΠΎΠ±Ρ‰ΠΈΡ… для всСх Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π΅Ρ‚ нСобходимости ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… Π·Π°Π½ΠΎΠ²ΠΎ. ВмСсто этого ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ просто Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ (говоря языком ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, интСрфСйс, обСспСчиваСмый Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ, практичСски нСзависим ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ, Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ…. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ MFC, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ вСрсиям Windows (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ). Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ сущСствСнным прСимущСством MFC являСтся ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ взаимодСйствия с ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ интСрфСйсом (API) Windows. Π›ΡŽΠ±ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ взаимодСйствуСт с Windows Ρ‡Π΅Ρ€Π΅Π· API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит нСсколько сот Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’Π½ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ API затрудняСт ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π΄Π°ΠΆΠ΅ слоТно ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части API связанны Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° MFC ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ (ΠΏΡƒΡ‚Π΅ΠΌ инкапсуляции) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ API Π² Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ мноТСство классов, интСрфСйсом становится Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π³Ρ‡Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ MFC прСдставляСт собой Π½Π°Π±ΠΎΡ€ классов, написанных Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++, поэтому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ MFC, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π½Π° Π‘++. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ знаниями. Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС классы, ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ наслСдования ΠΈ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π₯отя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MFC, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ слишком спСцифичСских элСмСнтов ΠΈΠ· Π°Ρ€ΡΠ΅Π½Π°Π»Π° Π‘++, для ΠΈΡ… Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ солидныС знания Π² Π΄Π°Π½Π½ΠΎΠΉ области.

1.10 АрхитСктура прилоТСния

Π£ всСх Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ фиксированная структура, опрСдСляСмая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ WinMain. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° прилоТСния, построСнного ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² классов Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC, являСтся Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° theApp, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ WinMain, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ количСства Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π‘Π΅Ρ€Π΄Ρ†Π΅Π²ΠΈΠ½Π° прилоТСния — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ theApp — ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ сообщСний. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ theApp являСтся Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ‚ся Π΅Ρ‰Π΅ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ WinMain. Π Π°Π±ΠΎΡ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ WinMain Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ Π΄Π²ΡƒΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° theApp: InitInstance ΠΈ Run. Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… сообщСний ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, WinMain посылаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ theApp сообщСниС InitInstance, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ InitInstance.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² сообщСниС InitInstance, theApp создаСт Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ прилоТСния. ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания выглядит ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Набор ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹Ρ… Π² Π½Π°Ρ‡Π°Π»Π΅ этой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ структурой MFC практичСски ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ — это главная Ρ€Π°ΠΌΠΊΠ°, шаблон, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΎΠ±Π»ΠΈΠΊ. Π˜Ρ… Ρ€ΠΎΠ»ΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ прилоТСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ·ΠΆΠ΅.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠ΅ theApp, — Run — ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Run. Оно ΠΊΠ°ΠΊ Π±Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ: «ΠΠ°Ρ‡ΠΈΠ½Π°ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π½Π°Ρ‡ΠΈΠ½Π°ΠΉ процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний ΠΈΠ· Π²Π½Π΅ΡˆΠ½Π΅Π³ΠΎ ΠΌΠΈΡ€Π°». ΠžΠ±ΡŠΠ΅ΠΊΡ‚ theApp цикличСски Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ сообщСния ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ сообщСний ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ прилоТСния.

НСкоторыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ графичСский ΠΎΠ±Ρ€Π°Π· Π½Π° ΡΠΊΡ€Π°Π½Π΅, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. Π­Ρ‚ΠΈ интСрфСйсныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ связаны с Windows-ΠΎΠΊΠ½ΠΎΠΌ. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… особСнно Π²Π°ΠΆΠ½Ρ‹ главная Ρ€Π°ΠΌΠΊΠ° ΠΈ ΠΎΠ±Π»ΠΈΠΊ. ИмСнно ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго распрСдСляСт сообщСния ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Windows-ΠΎΠΊΠΎΠ½ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Dispatch.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ мСню ΠΎΠΊΠ½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Ρ€Π°ΠΌΠΊΠΈ, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ сообщСния. Они ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ сначала ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ theApp ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ главная Ρ€Π°ΠΌΠΊΠ°, Π° Π·Π°Ρ‚Π΅ΠΌ обходят ΠΏΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ Ρ†Π΅Π»Ρ‹ΠΉ ряд ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈ ΠΎΠ±Π»ΠΈΠΊ, информируя ΠΈΡ… ΠΎ ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠ΅ΠΉ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля ΠΊΠΎΠΌΠ°Π½Π΄Π΅.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ прилоТСния Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ‚Π°ΠΊΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ сообщСниями. Π’ Visual C++ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ приписан ΠΈΠΌΠ΅Π½Π½ΠΎ этот статус (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ OnDraw).

Π’Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΎΠ±Π»ΠΈΠΊ ΠΈ Π³Π»Π°Π²Π½Π°Ρ Ρ€Π°ΠΌΠΊΠ°. Π—Π΄Π΅ΡΡŒ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ содСрТит Π΄Π°Π½Π½Ρ‹Π΅ прилоТСния, ΠΎΠ±Π»ΠΈΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ прСдставлСниС этих Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠΊΡ€Π°Π½Π΅, Π° ΠΎΠΊΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ€Π°ΠΌΠΊΠΈ — это ΠΎΠΊΠ½ΠΎ, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π° прилоТСния.

НаслСдованиС — ΠΎΠ΄Π½Π° ΠΈΠ· Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ΄Π΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. ИмСнно этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ наслСдования позволяСт программисту Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, Π½Π΅ Π²Ρ‚ΠΎΡ€Π³Π°ΡΡΡŒ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MFC, которая остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ. ВсС измСнСния Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ Π² ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ классС. ИмСнно Π² ΡΡ‚ΠΎΠΌ ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ся Ρ€Π°Π±ΠΎΡ‚Π° программиста.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΈΡ… ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ классов, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ программист Π±Π΅Ρ€Π΅Ρ‚ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC классы CWinApp, CFrameWnd, CDocument, CView ΠΈ Ρ‚. Π΄. ΠΈ ΡΡ‚Ρ€ΠΎΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ создаСтся ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² этих ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ нСсСт Π² ΡΠ΅Π±Π΅ ΠΊΠ°ΠΊ наслСдуСмыС Ρ‡Π΅Ρ€Ρ‚Ρ‹, опрСдСляСмыС Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ классами, Ρ‚Π°ΠΊ ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ программистом. НаслСдуСмыС Ρ‡Π΅Ρ€Ρ‚Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ±Ρ‰ΡƒΡŽ схСму повСдСния, ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ‚Π°ΠΊΠΈΠΌ прилоТСниям. НовыС ΠΆΠ΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСцифичСскиС особСнности повСдСния прилоТСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ стоящСй ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠŸΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса программист ΠΌΠΎΠΆΠ΅Ρ‚:

Β· ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‡Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹, Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС;

Β· Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹;

Β· Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, построСнноС Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC, — «Π°ΠΉΡΠ±Π΅Ρ€Π³», большая Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠ°, Π½ΠΎ ΡΠ²Π»ΡΠ΅Ρ‚ся основой всСго прилоТСния. Π§Π°ΡΡ‚ΡŒ прилоТСния, Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ MFC, — framework — называСтся каркасом прилоТСния. Рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния ΠΊΠ°ΠΊ процСсс взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ каркасом ΠΈ Ρ‡Π°ΡΡ‚ΡŒΡŽ прилоТСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ программистом. Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ СстСствСнно, Ρ‡Ρ‚ΠΎ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… программистом, ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, Ρ‡Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’Π°ΠΆΠ½Π΅Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ программистом, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, каркас ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс Π² ΡΡ‚ΠΎΠΌ смыслС Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹ — ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. Π’Π°ΠΊΠΎΠ΅ Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²ΠΈΠ΅ достигаСтся благодаря Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΡƒ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΡΡ Π² Π°Ρ€ΡΠ΅Π½Π°Π»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

Если ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса объявлСн Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» Π΅Π³ΠΎ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ классС, это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ исполнСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, каркас Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ программистом. Π’ΠΎΡ‡Π½Π΅Π΅ говоря, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡΡ‚ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· ссылку Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ своСго значСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса. Когда вызываСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ М1, ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Ρ‚ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Visual C++, каркас посылаСт сообщСниС М1 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ М1 этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ это сообщСниС. Если сообщСниС М1 послано ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ этого сообщСния Π½Π΅ Π·Π°Π΄Π°Π½ программистом, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ наслСдуСт ΠΌΠ΅Ρ‚ΠΎΠ΄ М1 блиТайшСго Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ этот ΠΌΠ΅Ρ‚ΠΎΠ΄. Если ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ‚Π°ΠΊΠΎΠ³ΠΎ сообщСния создан программистом, ΠΎΠ½ Π°Π²Ρ‚оматичСски отмСняСт дСйствия, прСдусмотрСнныС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ классом Π² ΠΎΡ‚сутствиС этого ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

1.11 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ прилоТСния

Рассмотрим, ΠΊΠ°ΠΊ создаСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Visual C++. Π‘Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ понятиС — ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π”ΠΎ ΡΠΈΡ… ΠΏΠΎΡ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»ΠΎΡΡŒ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов. Но Π΄Π»Ρ обСспСчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния трСбуСтся Π½Π΅Ρ‡Ρ‚ΠΎ большСС — наряду с ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ классов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ описаниС рСсурсов, связанных с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½ΡƒΠΆΠ½Π° справочная систСма ΠΈ Ρ‚. ΠΏ. Π’Π΅Ρ€ΠΌΠΈΠ½ «ΠΏΡ€ΠΎΠ΅ΠΊΡ‚» ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся, ΠΊΠΎΠ³Π΄Π° имССтся Π² Π²ΠΈΠ΄Ρƒ Ρ‚Π°ΠΊΠΎΠΉ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΉ взгляд Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π’ ΡΡ€Π΅Π΄Π΅ Visual C++ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π’Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ послС ΠΈΡ… ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π€ΠΈΡ€ΠΌΠ° Microsoft Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнтарий, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΈ ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ созданиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π² ΡΡ€Π΅Π΄Π΅ Visual C++. НапримСр, мастСр MFC AppWizard (exe) позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Windows-прилоТСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ, ΠΌΠ½ΠΎΠ³ΠΎΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ интСрфСйс ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MFC.

Π‘ΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ остов прилоТСния составлСн Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ срСдство — ClassWizard (мастСр классов), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для создания остовов Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ основноС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ClassWizard Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ‚ остовы для пСрСопрСдСляСмых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Он ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС сообщСния, приходящиС классу, ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ остов ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° любого ΠΈΠ· ΡΡ‚ΠΈΡ… сообщСний. Π­Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π΅ основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ClassWizard. Он Π½Π΅ Π²ΡΠ΅ΡΠΈΠ»Π΅Π½, Π½ΠΎ Π΅Π³ΠΎ возмоТности довольно Π²Π΅Π»ΠΈΠΊΠΈ.

1.12 Доступ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΆΠ΅ упрощаСтся. ΠŸΠ°ΠΊΠ΅Ρ‚ ODBC (Open DataBase Connectivity) ΠΎΡ‚ Microsoft позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ доступ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠ°ΠΌΡ‹Ρ… Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…: Oracle, Dbase, Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ листы Excel, Access ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярными ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌΠΈ прилоТСниями. Они находят ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ фактичСски Π² Π»ΡŽΠ±ΠΎΠΌ Π²ΠΈΠ΄Π΅ коммСрчСской Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, начиная ΠΎΡ‚ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ списков ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹ΠΌΠΈ вСдомостями ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. НС Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ сущСствованиС мноТСства Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСм управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π£Π‘Π”), каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… опрСдСляСт свои собствСнныС структуры Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ, создавало ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ слоТности для программистов, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… прилоТСния, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π”-прилоТСния), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ всС тонкости ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, хранящимся Π² Ρ„Π°ΠΉΠ»Π°Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ вСрсии Visual C++ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ классы, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°Ρ… ODBC ΠΈ DAO. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мастСра AppWizard ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простоС Π‘Π”-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π΅ Π½Π°ΠΏΠΈΡΠ°Π² Π½ΠΈ Π΅Π΄ΠΈΠ½ΠΎΠΉ строчки тСкста Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++. Π‘ΠΎΠ»Π΅Π΅ слоТныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ программирования, Π½ΠΎ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньшСм объСмС, Ρ‡Π΅ΠΌ это Π±Ρ‹Π»ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅.

2. БпСцификация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.1 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ Π² ΡΡ€Π΅Π΄Π΅ программирования Microsoft Visual Studio 98 Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Visual C++ c ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… «ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ URL-адрСсов», Π³Π΄Π΅ хранятся всС свСдСния ΠΎ ΡΠ°ΠΉΡ‚Π΅ ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠ°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ACCESS 2000. Π’ Π±Π°Π·Π΅ хранятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅: имя Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°, адрСс Π΅Π³ΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡŽ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° обСспСчиваСт поиск ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сохранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска Π² Ρ‚Скстовый Ρ„Π°ΠΉΠ». ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° обСспСчиваСт ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π°Π΄Ρ€Π΅ΡΠ°ΠΌΠΈ, Ρ‚. Π΅. прСдусматриваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ добавлСния, измСнСния, удалСния записСй, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π»ΡŽΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ.

2.2 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ список адрСсов элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Microsoft Access 2000. Π‘Π” Π²ΡΠ΅ измСнСния, сдСланныС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²Π»Π΅ΠΊΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ записСй Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ списка Π·Π° ΡΡ‡Π΅Ρ‚ добавлСния Π½ΠΎΠ²Ρ‹Ρ… записСй Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… содСрТится ваТнСйшая информация ΠΎΠ± Π°Π΄Ρ€Π΅ΡΠ°Ρ…, такая ΠΊΠ°ΠΊ адрСс, имя Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° адрСса ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ. Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ прСдусмотрСны ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° записСй, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ быстрый поиск ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ полю Π‘Π”, Ρ‡Ρ‚ΠΎ способствуСт ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для хранСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ адрСсов.

2.3 ОписаниС логичСской структуры прилоТСния

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π² ΡΡ€Π΅Π΄Π΅ Microsoft Visual C++6 ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ всСм ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Оно создано Π½Π° Π±Π°Π·Π΅ ΠΎΠ΄Π½ΠΎΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ прилоТСния. Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΌ установки ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ODBC. Для общСния с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ класс Π‘VisualStudioDBSet, наслСдуСмый ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠ° CRecordSet

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ CDatabase* pDatabase. Π’ ΠΊΠ»Π°ΡΡΠ΅ Π±Ρ‹Π»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ long m_cod, CString m_name, CString m_price, CString m_komment, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ Ρ‚ΠΈΠΏΠ°ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ полям, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ OpenEx, AddNew, IsOpen, Close, MoveFirst ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ унаслСдованы ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠ° CRecordset.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΌ классом прилоТСния являСтся класс CRecordView. Помимо «ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Ρ…» классов, ΠΏΡ€ΠΈ создании прилоТСния Π±Ρ‹Π»ΠΎ создано Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… класса Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠ½Π°. Одно ΠΈΠ· Π½ΠΈΡ… слуТит для Π²Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ тСкстовыС поля для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поля записи. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ слуТит для сортировки записСй ΠΏΠΎ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ критСриям, Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΎΠΊΠ½ΠΎ слуТит для поиска записСй ΠΏΠΎ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ критСриям. Π§Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ слуТит ΠΏΠ΅Ρ€Π²ΠΎΠΉ страницСй для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Π°Π±Π»ΠΈΡ†Π° 2.1. «Π‘пСцификация класса Π‘VisualStudiodbView»

Атрибут

Бпособ доступа

НазначСниС

Ondraw (CDC*pdc)

Protected

Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ элСмСнты Microsoft flexgrid Control ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ ячСйки записями ΠΈΠ· Π‘Π”

Onclickmsflexgrid1()

Protected

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈΠ· Π‘Π” записСй связанных с Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ записью

Onrecordadd ()

Protected

ДобавляСт записи Π² Π‘Π”

Onrecorddel ()

Protected

УдаляСт записи ΠΈΠ· Π‘Π”

Onrecordsort ()

Protected

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ записи

Onrecordsearch ()

Protected

Поиск записСй

2.4 ВрСбования ΠΊ Ρ‚СхничСскому ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ характСристиками: процСссор Intel с Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΉ частотой 166 ΠœΠ“Ρ† ΠΈ Π²Ρ‹ΡˆΠ΅, опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ — Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 32 ΠœΠ±Π°ΠΉΡ‚, свободноС дисковоС пространство — Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 500 ΠΊΠ±Π°ΠΉΡ‚, дисковод, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° Super VGA (число Ρ†Π²Π΅Ρ‚ΠΎΠ² — 256) с Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΡŽ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 14 .

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС — опСрационная систСма WINDOWS 95 / 98 / NT / ME / 2000 / XP / 2003.

Π’Π°ΠΊ ΠΆΠ΅ трСбуСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ установлСнной Π½Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Microsoft Access 2000.

2.5 Установка ΠΈ Π·Π°ΠΏΡƒΡΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ с Π΄ΠΈΡΠΊΠ΅Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»Ρ‹ Visual Studio db. exe ΠΈ db. mdb Π² Π»ΡŽΠ±ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ТСсткого диска. Π—Π°Ρ‚Π΅ΠΌ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… db.mdb. Для этого Π½Π°ΠΆΠΌΠΈΡ‚Π΅ «Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ…» Π² ΠΎΠΊΠ½Π΅ «ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ источников Π΄Π°Π½Π½Ρ‹Ρ… ODBC» (ΠŸΡƒΡΠΊ, настройки, панСль управлСния, администрированиС, источники Π΄Π°Π½Π½Ρ‹Ρ… ODBC). Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ «Driver do Microsoft Access (*.mdb)» ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ «Π“ΠΎΡ‚ΠΎΠ²ΠΎ». Π’ ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ «Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ODBC для Microsoft Access» Π² ΠΏΠΎΠ»Π΅ «Π˜ΠΌΡ источника Π΄Π°Π½Π½Ρ‹Ρ…» Π²Π²Π΅Π΄ΠΈΡ‚Π΅ слово «mydb». ПослС Ρ‡Π΅Π³ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ…» Π² ΠΏΠΎΠ»Π΅ «Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» db. mdb ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π»ΠΈ этот Ρ„Π°ΠΉΠ». НаТмитС «ΠžΠš». ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅. ЗапуститС Ρ„Π°ΠΉΠ» Visual Studio db.exe.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ