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

ОзнакомлСниС с прилоТСниями Windows

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

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сообщСний являСтся ΠΎΡ‡Π΅Π½ΡŒ распространСнным способом ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ООП-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ»ΠΈ ООП-языков. БущСствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ (ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π΅ Π² Π»ΡƒΡ‡ΡˆΡƒΡŽ сторону) Windows 3. x Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ся Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сообщСний являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ раздСлСния процСссора Π² ΠΏΡΠ΅Π²Π΄ΠΎΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΉ срСдС. Π’Π°ΠΊ ΠΊΠ°ΠΊ систСма Π½Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прилоТСния Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСния, Ρ‚ΠΎ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ОзнакомлСниС с прилоТСниями Windows (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ знакомство.

Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» называСтся «ΠΏΠ΅Ρ€Π²ΠΎΠ΅ знакомство». Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ для Windows. Но Π½Π΅ Π΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ это знакомство Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ основными идСями, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² ΡΠΈΡΡ‚Π΅ΠΌΡ‹ Ρ‚ΠΈΠΏΠ° Windows, Π° Ρ‚Π°ΠΊΠΆΠ΅ с ΠΈΡ… Π²Π»ΠΈΡΠ½ΠΈΠ΅ΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ (ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅) ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ оказываСтся лишь ΠΏΠΎΠ²ΠΎΠ΄ΠΎΠΌ для ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ³ΠΎ знакомства с Ρ†Π΅Π»Ρ‹ΠΌ классом систСм.

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

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

Π’Π°ΠΊΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы.

Π‘Ρ€Π°Π·Ρƒ оговоримся — Π² Windows Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ прилоТСния (application) Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² — прилоТСния Windows ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ MS-DOS. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ раздСлСния рСсурсов, примСняСмыС этими прилоТСниями сущСствСнно Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа ΠΊ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌ. Π’ ΡΡ‚ΠΎΠΉ ситуации ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ, говоря ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Windows. Если Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ Π·Π°ΠΉΠ΄Π΅Ρ‚ ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ… MS-DOS, Ρ‚ΠΎ ΡΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

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

Π‘ ΡΡ‚ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, начиная ΠΎΡ‚ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… (Ρ‚ΠΈΠΏΠ° MS-DOS) ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ достаточно слоТными (ΠΊΠ°ΠΊ Windows NT, Unix, OpenVMS), для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ возмоТности ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Windows.

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

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ‚ΠΈΠΏΠΈΡ‡Π΅Π½ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ²: ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слабая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств, простая файловая систСма ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΡΠ΅Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ — Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌ Π½Π΅ с ΠΊΠ΅ΠΌ. Π―Ρ€ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — MS DOS ΠΏΠ΅Ρ€Π²Ρ‹Ρ… вСрсий.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ срСды ΠΌΠ°Π»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΈ, Ссли систСма оказалась ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ, Ρ‚ΠΎ ΠΎΠ½Π° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² ΡΡ‚ΠΎΡ€ΠΎΠ½Ρƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ — ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΉ систСмС — Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹ΠΉ «ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ». РСзидСнтная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² ΠΎΠ΄Π½ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΉ срСдС — Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° приблиТСния ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΠΈ. Π’Π΅, ΠΊΡ‚ΠΎ пытался ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сколько-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Ρ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сталкивался с Ρ‚рудностями раздСлСния рСсурсов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эффСктивных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² для этого ΠΎΠ΄Π½ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Π΅ ΠžΠ‘ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚. А Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Ρ своСй открытости Ρ‚Π°ΠΊΠΈΠ΅ систСмы оказались Π±Π»Π°Π³ΠΎΠ΄Π°Ρ‚Π½ΠΎΠΉ ΠΏΠΎΡ‡Π²ΠΎΠΉ для развития вирусов.

НаиболСС ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Π΅, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ОБ, особСнно Π² ΠΌΡƒΠ»ΡŒΡ‚ипроцСссорных систСмах. Π Π°Π±ΠΎΡ‚Π° Ρ‚Π°ΠΊΠΎΠΉ систСмы основана Π½Π° ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ исполнСнии Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ выполняСтся Π»ΠΈΠ±ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ процСссорС, Π»ΠΈΠ±ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ раздСлСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ — Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π·Π½Π°Π΅Ρ‚, ΠΈ ΠΏΡ€Π°ΠΊΡ‚ичСски Π½Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ присутствия ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ВсС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ бСсконфликтного раздСлСния рСсурсов ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π»Π΅ΠΆΠ°Ρ‚ Π½Π° ΡΠΈΡΡ‚Π΅ΠΌΠ΅. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π·Π½Π°Π΅Ρ‚, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ, Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΊΡ‚Π° прСрывания. Для ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ процСсс выполнСния прСдставляСтся Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΌ.

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Π΅ систСмы ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, ΠΏΡ€ΠΈ этом ΠΎΠ½ΠΈ содСрТат ΠΌΠΎΡ‰Π½Ρ‹Π΅ срСдства взаимодСйствия с ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠ΅ΠΉ, практичСски ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ доступа ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ нСпосрСдствСнно ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ опСрационная систСма ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΡƒΡŽ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ систСму распрСдСлСния рСсурсов, ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΈ ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ² доступа ΠΊΠΎ Π²ΡΠ΅ΠΌ рСсурсам ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ содСрТит срСдства Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π½Π΅ΡΠ°Π½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ доступа ΠΊ Π½ΠΈΠΌ. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ привСсти OpenVMS, Unix, Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅ Windows NT (Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° для ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°).

Однако Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΈ ΠΌΠΎΡ‰Π½Ρ‹Π΅ ΠžΠ‘ часто Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ (ΠΏΠΎ ΠΈΠ΄Π΅Π΅ Π΅Π³ΠΎ использования) Π½Π΅ Π½ΡƒΠΆΠ½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ систСма, ΠΈ ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΡΡ‚ΡŒ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° являСтся ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ, Π½ΠΎ Ρ‡Π°ΡΡ‚ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ использования. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ с Ρ€ΠΎΡΡ‚ΠΎΠΌ мощности ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, появляСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ создания простых ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Ρ… ОБ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Вакая систСма Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ΄Π½ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΉ систСмами. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Π΅ ΡΠ΄Ρ€ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ большСй ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΡΡ‚ΡŒΡŽ, большСй Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ доступа ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π΅ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простыми ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ раздСлСния рСсурсов, Ρ‡Π΅ΠΌ Π² ΡΠ»ΠΎΠΆΠ½Ρ‹Ρ… систСмах.

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΉ ΠΊ ΡΡ‚ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ привСсти Windows 3. x, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ рСсурсов Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ основано Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… MS-DOS, Π° Ρ‚Π°ΠΊΠΆΠ΅ Windows-95, которая Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Windows NT ΠΈ Windows 3. x, прСдоставляя сущСствСнно ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа ΠΊ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌ, Ρ‡Π΅ΠΌ Windows NT ΠΈ, Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя, обСспСчивая качСствСнно Π»ΡƒΡ‡ΡˆΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ, Ρ‡Π΅ΠΌ Windows 3.x.

ΠšΡ€Π°Ρ‚ΠΊΠΈΠ΅ свСдСния ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ рСсурсов Π² Windows.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Windows ΠΌΠΎΠ³ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ рСсурсы, Π½Π° Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ ряд Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ трСбования ΠΌΠΎΠ³ΡƒΡ‚ ΠΈ Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒΡΡ. Π’Π°ΠΊ прилоТСния ΠΏΠΎΠ΄ Windows 3. x ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π΅, хотя Π΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ся. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Win32 ΡƒΠΆΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТнСС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ — систСма Π»ΡƒΡ‡ΡˆΠ΅ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π° ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ, особСнно Windows NT. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ‚Π°ΠΊΠΈΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ являСтся Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ нСпосрСдствСнно. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ срСдства Windows для выполнСния всСх своих Π·Π°Π΄Π°Ρ‡, Π½ΠΎ Π½Π΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ доступ ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π΅ нСпосрСдствСнно.

НапримСр, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡ‚ΠΈ, срСдствам BIOS ΠΈ Ρ‚. Π΄. Если ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ вывСсти Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ½ΠΎ обязано Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ функциями Windows.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡ‚ΡƒΠΏ ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π΅ — Π½Π΅ ΡΠ°ΠΌΠΎΠ΅ приятноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈ ΡΠ²ΠΎΡŽ ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π½ΡƒΡŽ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚Π½ΡƒΡŽ, сторону: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ (ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ) ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, с Ρ‡Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ — ΠΎΠ± ΡΡ‚ΠΎΠΌ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ Windows. Π’ΠΎ Π΅ΡΡ‚ΡŒ Windows сам обСспСчиваСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСх Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌΡΡ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ практичСски всС возмоТности этого оборудования.

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

К ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ раздСляСмым рСсурсам нСсомнСнно относятся дисплСй, ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°, ΠΌΡ‹ΡˆΡŒ, опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ, процСссор ΠΈ Π΄ΠΈΡΠΊ. Π‘Ρ‚ΠΎΠΈΡ‚ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ раздСлСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΡ‚ΠΈΡ… рСсурсов.

ДисплСй.

Для раздСлСния дисплСя ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π² Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΊΠ½Π° (window). КаТдой Π·Π°Π΄Π°Ρ‡Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ, ΠΏΠΎ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ, ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ (Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡΡ‚ΠΎ ΠΎΠΊΠ½ΠΎ.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ нСсколькими ΠΎΠΊΠ½Π°ΠΌΠΈ. Π’ ΡΡ‚ΠΎΠΌ случаС, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ являСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ (parent), Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ (child) ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΎΠΊΠ½Ρƒ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ — это Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ прилоТСния (main window). ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π° прилоТСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΡΡ‚ΠΎΠΌΡƒ ΠΎΠΊΠ½Ρƒ.

Окна ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΡΠΊΡ€Π°Π½Ρƒ, пСрСкрывая ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ частично Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΊΠ½Π°. Окна ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ («Ρ€Π°ΡΠΏΠ°Ρ…Π½ΡƒΡ‚ΠΎΠΌ» Π½Π° Π²Π΅ΡΡŒ экран, maximized, zoomed), Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ (minimized, iconed) состоянии. Π’ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ состоянии ΠΎΠΊΠ½ΠΎ замСняСтся Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ (ΠΈΠΊΠΎΠ½ΠΎΠΉ, icon), Π»ΠΈΠ±ΠΎ помСщаСтся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ список ΠΎΠΊΠΎΠ½ (taskbar ΠΈΠ»ΠΈ systray для Windows-95 ΠΈ Windows NT 4.0).

Основная Π»ΠΎΠ³ΠΈΠΊΠ° использования ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΠΊΠΎΠ½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Windows, хотя программистам остаСтся достаточно ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ — ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² ΡΡ‚ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΊΠ½Π°, Ссли Ρ€Π°Π½Π΅Π΅ скрытоС ΠΎΠΊΠ½ΠΎ становится Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях).

Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π²ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²ΠΊΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΠΊΠΎΠ½ выполняСтся систСмой, связано с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ графичСского Ρ€Π΅ΠΆΠΈΠΌΠ° отобраТСния ΠΎΠΊΠΎΠ½. Для ΠΏΠΎΠ»Π½ΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ «Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ» всю Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΠΊΠ½Π°ΠΌΠΈ — Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ копия изобраТСния ΠΎΠΊΠ½Π°. Π’ΠΎΠ³Π΄Π° Windows ΠΌΠΎΠ³ Π±Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ частично Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ появлСнии Ρ€Π°Π½Π΅Π΅ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ части ΠΎΠΊΠ½Π° ΠΏΠΎ ΡΡ‚ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. Однако ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΏΠΈΠΉ (для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° своя копия) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сопоставим с ΠΎΠ±ΡŠΠ΅ΠΌΠΎΠΌ всСй ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ для Ρ€Π΅ΠΆΠΈΠΌΠ° 1280×1024, 16 Π±ΠΈΡ‚/пиксСль (это Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΡΠ°ΠΌΡ‹ΠΉ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ) Π±ΠΈΡ‚ΠΌΠ°ΠΏ экрана Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 2.5MB. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС экрана ΠΈ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΊΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Windows практичСски Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π° — рСсурсов ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° для этого явно Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ (ΠΈΡ… Π΅Ρ‰Π΅ Π½Π°Π΄ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ с Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΌΠΈ прилоТСниями ΠΈ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ самой систСмы).

Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ говоря, ΠΎΠΊΠ½ΠΎ Π² Windows являСтся Ρ‚Π΅ΠΌ самым ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ частично Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Windows Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «ΠΎΠ±ΡŠΠ΅ΠΊΡ‚» Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ся ΠΊ ΠΎΠΊΠ½Ρƒ, Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ называСтся «ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ», Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ООП.

ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΈ ΠΌΡ‹ΡˆΡŒ.

Π­Ρ‚ΠΈ устройства относятся ΠΊ ΡƒΡΡ‚ройствам Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ этих устройств ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π° ΠΊΡ€ΡƒΠ³Π° вопросов:

ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ относятся Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΡƒΡΡ‚ройства Π²Π²ΠΎΠ΄Π°.

ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΡƒΡΡ‚ройства Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅.

Для ΠΌΡ‹ΡˆΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ относятся Π΄Π°Π½Π½Ρ‹Π΅, Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ: Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ каТдая Π·Π°Π΄Π°Ρ‡Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ, Ρ‚ΠΎ ΠΈΠ½Ρ„ормация ΠΎΡ‚ ΠΌΡ‹ΡˆΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΊΠ½ΠΎΠΌ, Π½Π° Ρ„ΠΎΠ½Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ находится курсор ΠΌΡ‹ΡˆΠΈ.

Для ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π΄Π΅Π»ΠΎ обстоит нСсколько слоТнСС: Π½Π°ΠΌ придСтся ввСсти понятиС Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (active window). Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, это ΠΎΠΊΠ½ΠΎ выдСляСтся Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, Ρ€Π°ΠΌΠΊΠΈ ΠΈΠ»ΠΈ подписи (Ссли ΠΎΠΊΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ). АктивноС ΠΎΠΊΠ½ΠΎ являСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ другая Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠ³Π»Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΎΠΊΠ½ΠΎ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π΅ этой Π·Π°Π΄Π°Ρ‡Π΅.

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

Диск.

Для раздСлСния дискового пространства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ файловая систСма. Π—Π΄Π΅ΡΡŒ Windows 3. x ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΡΡ — Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой DOS; Windows-95 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ слСгка ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму DOS (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ Π΄ΠΎ 256 символов ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ использованиС Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ FAT32 вмСсто FAT16 ΠΈΠ»ΠΈ FAT12). И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Windows NT прСдоставляСт ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму — NTFS, хотя ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Ρ FAT. NTFS отличаСтся ΠΎΡ‚ FAT сущСствСнно Π±ΠΎΠ»Π΅Π΅ слоТной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½Ρ‹Π΅ Ρ‚ΠΎΠΌΠ° ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дисков, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΎΠΌΠ° ΠΈΠ»ΠΈ Ρ‚ΠΎΠΌΠ° с ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ для хранСния Π²Π°ΠΆΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° доступа ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. ЕстСствСнно, Π±ΠΎΠ»Π΅Π΅ слоТная систСма оказываСтся Π±ΠΎΠ»Π΅Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊ ΡΠ±ΠΎΡΠΌ (нСсмотря Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ принятыС ΠΌΠ΅Ρ€Ρ‹) ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ (нСсмотря Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ).

Для доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ Windows прСдоставляСт свои собствСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Windows 3. x ΡΡ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ функциям DOS для доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ доступа. Для Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Windows Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ SHARE. EXE Π΄ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ° Windows 3.1, Π»ΠΈΠ±ΠΎ, Π² ΡΠ»ΡƒΡ‡Π°Π΅ Windows 3.11, Π±ΡƒΠ΄Π΅Ρ‚ использован ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Windows — VSHARE.386. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎ Π²Π΅Ρ€ΡΠΈΡŽ Windows 3.0 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠΌΠ΅Π» мСсто Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ нюанс: Windows ΠΈΠΌΠ΅Π» ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для открытия Ρ„Π°ΠΉΠ»ΠΎΠ² (OpenFile), Π½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авлял срСдств для чтСния/записи — ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ просто Π½Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, хотя Π²Π½ΡƒΡ‚Ρ€ΠΈ самого Windows ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π»ΠΈΡΡŒ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρƒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΎΡΡŒ Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Run-Time Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ принятого языка (Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ лишь ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ), Π»ΠΈΠ±ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свои ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π΅. Π›ΠΈΠ±ΠΎ, Ρ‡Ρ‚ΠΎ дСлалось Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‡Π°Ρ‰Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Windows для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π‘ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ Microsoft просто Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Π» эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Win32 ΠΏΡ€ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ DOS Π½Π°Π΄ΠΎ просто Π·Π°Π±Ρ‹Ρ‚ΡŒ — Win32 прСдоставляСт Π±ΠΎΠ»Π΅Π΅ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ говоря, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ DOS Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами — для CD_ROM дисков ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ спроСктирована своя собствСнная файловая систСма (CDFS). ΠŸΡ€ΠΈ этом Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ CD-ROM, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ физичСский доступ ΠΊ Π΄ΠΈΡΠΊΡƒ, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ MSCDEX, которая осущСствляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄ΠΈΡΠΊΠ°ΠΌΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ CDFS. Π°, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ DOS.

ΠŸΠ°ΠΌΡΡ‚ΡŒ.

РСализация ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² раздСлСния памяти Π² Windows API ΠΈ Win32 API качСствСнно Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ. Для этого придСтся Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ развития диспСтчСра памяти, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сдСлано ΠΏΠΎΠ·ΠΆΠ΅. БСйчас Π½Π°Π΄ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ раздСлСния памяти.

Π’ ΠΎΠ±ΠΎΠΈΡ… API ΠΏΠ°ΠΌΡΡ‚ΡŒ дСлится Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ. Однако Π΄Π΅Π»Π΅Π½ΠΈΠ΅ осущСствляСтся ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.

Windows API.

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ вся доступная для Windows ΠΏΠ°ΠΌΡΡ‚ΡŒ называСтся глобальной (ΠΈΠ½ΠΎΠ³Π΄Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ…ΠΈΠΏ, глобальная ΠΊΡƒΡ‡Π°, global heap). Π­Ρ‚Π° глобальная ΠΏΠ°ΠΌΡΡ‚ΡŒ дСлится Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹ΠΌΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ. Π’ Π²ΠΈΠ΄Π΅ Π±Π»ΠΎΠΊΠΎΠ² глобальной памяти Π² Windows ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ — Π² ΡΡ‚ΠΎΠΌ случаС ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ сСгмСнту соотвСтствуСт ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ глобальной памяти.

Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, прСдставлСнный Π² Π²ΠΈΠ΄Π΅ Π±Π»ΠΎΠΊΠ° глобальной памяти, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ свою Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΡƒΡ‡Ρƒ (Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ…ΠΈΠΏ, local heap). Π­Ρ‚Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π½Π° Π±Π»ΠΎΠΊΠΈ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π’Π΅Ρ€ΠΌΠΈΠ½ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ примСняСтся ΠΊ ΠΏΠ°ΠΌΡΡ‚ΠΈ, Ссли ΠΎΠ½Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ сСгмСнту Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

Win32 API.

Π’ Windows-95 ΠΈ Π² Windows NT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊ называСмая Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ прилоТСния выдСляСтся собствСнноС адрСсноС пространство, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 4 Π“, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π»Π°Π΄Π΅Π΅Ρ‚ монопольно. Π’ ΡΡ‚ΠΎΠΌ пространствС Π½Π΅ Π½Π°Ρ…одится Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ прилоТСния Win32 ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. НСобходимо ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ «Π°Π΄Ρ€Π΅ΡΠ½ΠΎΠ΅ пространство» Π½Π΅ ΡΠΎΠΎΡ‚вСтствуСт Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ выдСляСмой памяти — это Ρ‚ΠΎΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ адрСсов, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ выдСлСнная ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… 4 Π“ адрСсного пространства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ прилоТСния ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ систСмы.

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

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

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€.

Π’Ρ‹ΡˆΠ΅, ΠΏΡ€ΠΈ рассмотрСнии Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π±Ρ‹Π»ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ Π΄Π²Π° «Ρ‡ΠΈΡΡ‚Ρ‹Ρ…» Ρ‚ΠΈΠΏΠ° систСм: ΠΎΠ΄Π½ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Π΅. Windows Π²ΠΎ Π²ΡΠ΅Ρ… Π΅Π³ΠΎ вСрсиях Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ полоТСния ΠΌΠ΅ΠΆΠ΄Ρƒ двумя этими ΠΊΡ€Π°ΠΉΠ½ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π’Π°ΠΊ вСрсии Windows 3. x ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°ΡŽΡ‚ся ΠΊ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌΡƒ Ρ‚ΠΈΠΏΡƒ ΠΎΠ΄Π½ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΎΠ΄Π½ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Ρ… систСм (с ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… возмоТностСй ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°), Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ слоТная Windows NT являСтся истинно ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΉ систСмой с Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹ΠΌΠΈ срСдствами раздСлСния доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Windows API ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

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

ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся срСда, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ°Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ псСвдомногозадачной (Π½Π΅Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‰Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, non-preemptive multitasking). Π’ Ρ‚Π°ΠΊΠΎΠΉ срСдС, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ΄Π½ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΉ, систСма Π½Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ выполнСния прилоТСния. Однако само ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΠ΅, быстро выполняСмыС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹. ПослС выполнСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ прилоТСния. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ само увСдомляСт систСму, Π³Π΄Π΅ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ для выполнСния Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡.

Π’ Windows 3. x ΡΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ:

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

ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰Π΅ΠΉ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ систСмС, ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ Π΅Π³ΠΎ Π½Π°Π·Π°Π΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Windows 3. x Π΄Π²Π΅ — Yield ΠΈ DirectYield. Однако этот ΠΏΡƒΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΎΡ‡Π΅Π½ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… случаях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠ², ΠΈΠ·-Π·Π° довольно ТСстких ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ΠŸΡ€ΠΈ написании Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Windows 3. x Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ производится Π½Π΅ ΠΌΠ΅Ρ…аничСски, скаТСм Ρ‡Π΅Ρ€Π΅Π· 100 строк, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ — каТдая функция выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ дСйствия. ΠŸΡ€ΠΈ этом систСма, вызывая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΅ΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

Π”ΠΎ ΡΠΈΡ… ΠΏΠΎΡ€ всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ состояли ΠΈΠ· Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, прСдусматривал ΠΊΠΎΠ³Π΄Π°, Π³Π΄Π΅ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ€Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… воздСйствий, ΠΈ ΠΊΠ°ΠΊ ΠΈ ΠΊΡƒΠ΄Π° Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

НапримСр, ΠΏΡ€ΠΈ нСобходимости Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π»Π° Π² ΡΠ΅Π±Ρ Π²Ρ‹Π·ΠΎΠ² ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС (ΠΈΠ»ΠΈ BIOS, Π½Π° Ρ…ΡƒΠ΄ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ†), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

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

Π’Π²Π΅Π΄Π΅ΠΌ Π½ΠΎΠ²Ρ‹Π΅ понятия:

Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΎΡ‚ ΡΠΈΡΡ‚Π΅ΠΌΡ‹ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ сообщСниСм (message).

процСсс обращСния ΠΊ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ называСтся посылкой (post) ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ (send) сообщСния.

функция, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ сообщСния, называСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний (message handler).

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡΠΎΠ·Π΄Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ Π² ΠΏΡΠ΅Π²Π΄ΠΎΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΉ срСдС (здСсь: Windows 3. x), Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний. Π”Π°Π»Π΅Π΅ Windows Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ вашим ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌ сообщСния для ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ООП всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ 3мя свойствами:

инкапсуляция — объСдинСниС Π² Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…;

наслСдованиС — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пороТдСния Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…, наслСдуя ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π²Π°;

ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ — Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΉ Π½Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ воздСйствия; наслСдники ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ своими свойствами Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΈ ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΊΠ°.

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

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ говорят, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний опрСдСляСт свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°Π΄Π°Π΅Ρ‚ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚вия (сообщСния). ИмСнно с Ρ‚Π°ΠΊΠΎΠΉ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ языки ООП.

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

БообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Windows направляСт ΠΎΠΊΠ½Ρƒ, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ происходит с ΡΡ‚ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ. НапримСр, Π΅ΡΡ‚ΡŒ сообщСния, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΊΠ½Π°, ΠΈΠ»ΠΈ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΌΡ‹ΡˆΠΈ, ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΈ Π΄Ρ€. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° сообщСний являСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ раздСлСния ΠΌΠ½ΠΎΠ³ΠΈΡ… рСсурсов, Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСссора. Π’Π°ΠΊ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΈΡ… сообщСний, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΡ‹ΡˆΠΈ ΠΈΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сообщСния, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΎΠΊΠ½ΠΎΠΌ, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ дисплСя ΠΈ Ρ‚. Π΄.

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

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сообщСний являСтся ΠΎΡ‡Π΅Π½ΡŒ распространСнным способом ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ООП-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ»ΠΈ ООП-языков. БущСствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ (ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π΅ Π² Π»ΡƒΡ‡ΡˆΡƒΡŽ сторону) Windows 3. x Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ся Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сообщСний являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ раздСлСния процСссора Π² ΠΏΡΠ΅Π²Π΄ΠΎΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΉ срСдС. Π’Π°ΠΊ ΠΊΠ°ΠΊ систСма Π½Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прилоТСния Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСния, Ρ‚ΠΎ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π­Ρ‚ΠΎ сильно затрудняСт ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Windows 3. x Π΄Π»Ρ расчСтных Π·Π°Π΄Π°Ρ‡ — Π»ΠΈΠ±ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ быстро, Π»ΠΈΠ±ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Π±Ρ‹ΡΡ‚Ρ€ΠΎ выполняСмыС части, ΠΈ ΠΏΠΎΠ½Π΅ΠΌΠ½ΠΎΠ³Ρƒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ получСния сообщСний. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ приходится Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° Ρ‡Π°ΡΡ‚ΠΈ, Π° ΡΡ‚ΠΎ сущСствСнно замСдляСт вычислСния. Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ сообщСния Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠ΅Π½Π΅Π΅ 1 сСкунды, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π² Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Windows Π½Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ воздСйствия Π½Π΅ Π±Ρ‹Π»Π° ΠΎΡ‡Π΅Π½ΡŒ большой; ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠΉ являСтся Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° порядка 1−2 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ — ΠΏΡ€ΠΈ этом Windows 3. x ΠΌΠΎΠΆΠ΅Ρ‚ просто Π΄Π°Ρ‚ΡŒ сбой ΠΈΠ»ΠΈ Π·Π°Π²ΠΈΡΠ½ΡƒΡ‚ΡŒ (Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ сильно зависит ΠΎΡ‚ Π½Π°Π»ΠΈΡ‡ΠΈΡ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).

Win32 API.

Π’ Π±ΠΎΠ»Π΅Π΅ слоТном Win32 API примСняСтся Ρ‚Π°ΠΊ называСмая истинная ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ (Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‰Π°Ρ, preemptive multitasking). Π’ ΡΡ‚ΠΎΠΌ случаС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ процСссора осущСствляСтся ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°ΠΌ (ΠΊΠ²Π°Π½Ρ‚Π°ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ). ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сообщСний пСрСстала Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ раздСлСния процСссора, ΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСния систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ прилоТСниям. Π‘Π°ΠΌΠ° ΠΆΠ΅ идСя примСнСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΎΠΊΠ½Π°ΠΌ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.

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

Π˜ΡΡ‚ΠΈΠ½Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π² Win32 ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Π΅ прилоТСния (multithread application). ΠŸΡ€ΠΈ этом Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… понятия — процСсс (proccess) ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ (thread). ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ Π² Win32 API ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ эквивалСнтны прилоТСниям Π² Windows API. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ систСмныС рСсурсы — адрСсноС пространство, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΈ ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡ‹ΠΌ рСсурсам ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅, Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠ΅ врСмя. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь описываСт Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ, Π±Π΅Π· нСпосрСдствСнных вычислСний. Для раздСлСния процСссора ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡΡ‹, Π° ΠΏΠΎΡ‚ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈ Π²Ρ‹Π΄Π΅Π»ΡΠ΅Ρ‚ся процСссорноС врСмя. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса выдСляСтся свой ΠΏΠΎΡ‚ΠΎΠΊ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ (primary thread), создаваСмый ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ создании процСсса. ΠŸΡ€ΠΈ нСобходимости Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создано ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой (ΠΈ Ρ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов) Π·Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠ΅ врСмя, Π½ΠΎ Π½Π΅ Π·Π° адрСсноС пространство.

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Windows.

Пока ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ идСю использования сообщСний для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ срСды. БСйчас Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ям ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΉ срСдС.

КаТдоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ (Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния Π²ΠΎΠΎΠ±Ρ‰Π΅ Π±Π΅Π· ΠΎΠΊΠΎΠ½, Π½ΠΎ ΠΊΠ°ΠΊ нСбольшиС спСциализированныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ управлСния). Бвойства ΠΎΠΊΠ½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний этого ΠΎΠΊΠ½Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ свойства Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π½Π°Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний, посылаСмых этому ΠΎΠΊΠ½Ρƒ (ΠΎΠΊΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ — window procedure, ΠΎΠ½Π° ΠΆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний, message handler).

Одна ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ сообщСния, посылаСмыС Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΎΠΊΠ½Π°ΠΌ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ свойствами. Говорят, Ρ‡Ρ‚ΠΎ ΠΎΠΊΠ½Π°, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠΊΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ классу ΠΎΠΊΠΎΠ½. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ эту ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ — это называСтся рСгистрациСй класса ΠΎΠΊΠΎΠ½.

Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ срСдства для создания ΠΈ ΠΎΡ‚обраТСния ΠΎΠΊΠ½Π° зарСгистрированного класса. Π‘ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ — ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎ ΡΠΊΡ€Π°Π½Ρƒ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹, Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ тСкст ΠΈ Ρ‚. Π΄. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ этого ΠΎΠΊΠ½Π° (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ вашСго прилоТСния) Π½Π° Π΄Π΅ΠΉΡΡ‚вия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ЀактичСски Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ доставку сообщСний, адрСсованных Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΎΠΊΠ½Ρƒ, Π΄ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Сля — ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ называСтся Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний (message loop).

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько шагов для создания собствСнного прилоТСния:

Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΊΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ;

Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (класс) Π² Windows, присвоив классу ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя;

ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π΅ Π΄Π°Π½Π½ΠΎΠΌΡƒ классу;

ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π² Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний.

Π§ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим, Ρ‡Ρ‚ΠΎ происходит с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π·Π° Π²Ρ€Π΅ΠΌΡ Π΅Π³ΠΎ «ΠΆΠΈΠ·Π½ΠΈ» — ΠΎΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ° Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ — ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

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

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

#define WM_MOVE 0×0003.

#define WM_SIZE 0×0005.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв названия сообщСний Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ Π½Π° WM_, ΠΎΠ΄Π½Π°ΠΊΠΎ названия Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сообщСний ΠΈΠΌΠ΅ΡŽΡ‚ прСфиксы BM_, EM_, LBM_, CBM_ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Для Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹Π΄Π΅Π»ΠΈΠΌ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ сообщСния, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ знакомится ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ сообщСния ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ создании ΠΎΠΊΠ½Π° (WM_CREATE), ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π’ΠΎΡ‡Π½Π΅Π΅ ΠΏΡ€ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π’Π΅Ρ€ΠΌΠΈΠ½ «Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅» Π² Windows часто ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ смысл, Π² Ρ‚ΠΎΠΌ числС — сворачиваниС ΠΎΠΊΠ½Π° Π² ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. (WM_DESTROY ΠΈ WM_QUIT) ΠΈ ΠΏΡ€ΠΈ Π΅Π³ΠΎ пСрСрисовывании (WM_PAINT).

Π’ Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ создаСт Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, оконная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ сообщСниС WM_CREATE, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΠΎ Π΅Π³ΠΎ создании. ΠŸΡ€ΠΈ этом ΠΎΠΊΠ½ΠΎ создаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (CreateWindow, CreateWindowEx ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅), которая выполняСт всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ дСйствия; сообщСниС ΠΏΡ€ΠΈ этом ΠΈΠΌΠ΅Π΅Ρ‚ лишь «ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ» Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ — ΠΎΠ½ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠΊΠ½ΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚. Однако Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ созданиС происходит Π½Π΅ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ этого сообщСния, Π° Π² Ρ‚ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹Π·Π²Π°Π»ΠΈ для создания ΠΎΠΊΠ½Π°.

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

Когда ΠΎΠΊΠ½ΠΎ закрываСтся, ΠΎΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСниС WM_DESTROY, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΎΠΊΠ½Π°. Как ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ создания, сообщСниС ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ являСтся ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ; Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ осущСствляСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ DestroyWindow), которая, срСди ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, ΠΈ ΠΈΠ·Π²Π΅ΡΡ‚ΠΈΡ‚ ΠΎΠΊΠ½ΠΎ ΠΎ Π΅Π³ΠΎ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠΈ.

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

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°Π΅Ρ‚ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС.

БСйчас Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Windows, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ «Hello, world!». ПослС этого ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим, ΠΊΠ°ΠΊ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ устроСно. Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ создании практичСски Π»ΡŽΠ±Ρ‹Ρ…, написанных Π½Π° «C», ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Windows этот тСкст ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ шаблона.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1A — ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π€Π°ΠΉΠ» 1a.cpp.

#define STRICT.

#include.

#define UNUSED_ARG (arg) (arg)=(arg).

static char szWndClass[] = «test window» ;

LRESULT WINAPI _export WinProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam).

{.

UNUSED_ARG (wParam);

UNUSED_ARG (lParam);

PAINTSTRUCT ps;

switch (uMsg) {.

case WM_CREATE:

return 0L;

case WM_PAINT:

BeginPaint (hWnd, &ps);

TextOut (ps.hdc, 0, 0, «Hello, world!», 13);

EndPaint (hWnd, &ps);

return 0L;

case WM_DESTROY:

PostQuitMessage (0);

return 0L;

default:

break;

}.

return DefWindowProc (hWnd, uMsg, wParam, lParam);

}.

static BOOL init_instance (HINSTANCE hInstance).

{.

WNDCLASS wc;

wc.style = 0L;

wc.lpfnWndProc = WinProc;

wc.cbClsExtra = 0;

wc.cbWndExtra = 0;

wc.hInstance = hInstance;

wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);

wc.hCursor = LoadCursor (NULL, IDC_ARROW);

wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);

wc.lpszMenuName = NULL;

wc.lpszClassName = szWndClass;

return RegisterClass (&wc) == NULL? FALSE: TRUE;

}.

int PASCAL WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow).

{.

UNUSED_ARG (lpszCmdLine);

MSG msg;

HWND hWnd;

if (!hPrevInst) {.

if (!init_instance (hInst)) return 1;

}.

hWnd= CreateWindow (.

szWndClass, «window header», WS_OVERLAPPEDWINDOW,.

CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,.

NULL, NULL, hInst, NULL.

);

if (!hWnd) return 1;

ShowWindow (hWnd, nCmdShow);

UpdateWindow (hWnd);

while (GetMessage (&msg, NULL, NULL, NULL)) {.

TranslateMessage (&msg);

DispatchMessage (&msg);

}.

return msg. wParam;

}.

Рисунок 1. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1a. cpp Π² ΡΡ€Π΅Π΄Π΅ Windows 3. x ΠΈΠ»ΠΈ Windows NT 3. x (слСва) ΠΈΠ»ΠΈ Π² ΡΡ€Π΅Π΄Π΅ Windows-95 ΠΈΠ»ΠΈ Windows NT 4.0 (справа).

Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ запускаСтся это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, внСшний Π²ΠΈΠ΄ ΠΎΠΊΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ нСсколько ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Π­Ρ‚ΠΎ связано с ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡˆΠΈΠΌΡΡ интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΎΡ‚ Windows 3. x ΠΈ Windows NT 3. x ΠΊ Windows-95 ΠΈ Windows NT 4.0.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ исходный тСкст Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ взглядС Π½Π° Π½Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½Π° ΡΠ΅Π±Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ сразу нСсколько Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… (ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ для DOS) Π²Π΅Ρ‰Π΅ΠΉ:

Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… странныС ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΠΈΠ»ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ порядкС ΠΌΡ‹ ΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ эти вопросы.

НовыС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π˜Ρ‚Π°ΠΊ, Π΅Ρ‰Π΅ Ρ€Π°Π· рассмотрим ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (1a.cpp).

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ «Π‘"-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ помСщаСтся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° прСпроцСссора #include для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°, содСрТащСго основныС опрСдСлСния ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠŸΡ€ΠΈ написании Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» WINDOWS.H. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» содСрТит опрСдСлСния Ρ‚ΠΈΠΏΠΎΠ², констант ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Windows Π’ Win32 API Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» windows. h ΠΏΡ€ΠΎΡΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Π½Π°Π±ΠΎΡ€ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² #include для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² условной компиляции.

Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ WINDOWS. H ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ символ STRICT:

#define STRICT.

#include.

Он ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΡΡ‚Ρ€ΠΎΠ³ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ². Π’ΠΎ Π΅ΡΡ‚ΡŒ использованиС вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ, Π΄Π°ΠΆΠ΅ сходного, Ρ‚ΠΈΠΏΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ компилятором ΠΊΠ°ΠΊ ошибка.

Для большСй части ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Windows ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ свои собствСнныС опрСдСлСния — Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈ, соотвСтствСнно, Windows-прилоТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ пСрСносимыми хотя Π±Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ исходного тСкста.

Для 16Ρ‚ΠΈ ΠΈ 32Ρ… разрядных ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ сущСствСнно Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌΡ‹ адрСсации. НапримСр, для 32Ρ… разрядных машин практичСски Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ся near ΠΈ far ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ адрСса (Win32 Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±Ρ‹ прилоТСния Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ Π² 32Ρ… разрядной flat-ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти, Π³Π΄Π΅ Π½Π° Π²ΡΠ΅ ΠΏΡ€ΠΎ всС отводится ΠΎΠ΄ΠΈΠ½ 32Ρ… разрядный сСгмСнт, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄ΠΎ 4Π“). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, стандартом C ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ся, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ ΠΎΠ΄Π½ΠΎ слово. Π’ΠΎ Π΅ΡΡ‚ΡŒ для 16Ρ‚ΠΈ разрядных машин ΠΎΠ½ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ с Ρ‚ΠΈΠΏΠΎΠΌ short int, Π° Π΄Π»Ρ 32Ρ… разрядных с Ρ‚ΠΈΠΏΠΎΠΌ long int. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‡Π°ΡΡ‚ΠΈΡ‡Π½ΠΎΠΉ нСпСрСносимости Π‘-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ.

Из Π±ΠΎΠ»ΡŒΡˆΠΎΠ³ΠΎ количСства опрСдСляСмых Ρ‚ΠΈΠΏΠΎΠ² Π²Ρ‹Π΄Π΅Π»ΠΈΠΌ нСсколько, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π°ΠΌ придСтся ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°Ρ‡Π°Π»Π΅. Π’Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ поступлСния.

НовоС названиС.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Windows API.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Win32 API.

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ (#define).

FAR.

NEAR.

PASCAL.

LONG.

VOID.

NULL.

WINAPI.

CALLBACK.

far.

near.

pascal.

long.

void.

0.

pascal far.

pascal far.

.

.

pascal.

long.

void.

0.

pascal.

pascal.

Π’ΠΈΠΏΡ‹ (typedef).

BOOL.

BYTE.

WORD.

DWORD.

UINT.

NPSTR.

PSTR.

LPSTR.

LPCSTR.

WPARAM.

LPARAM.

LRESULT.

FARPROC.

HANDLE.

HFILE.

HWND.

HINSTANCE.

HDC.

int.

unsigned char.

unsigned short int.

unsigned long int.

unsigned int.

char near*.

char *.

char far*.

const char far*.

UINT.

LONG.

LONG.

(far pascal *)(void).

unsigned int.

HANDLE.

HANDLE.

HANDLE.

HANDLE.

int.

unsigned char.

unsigned short int.

unsigned long int.

unsigned int.

char *.

char *.

char *.

const char *.

UINT.

LONG.

LONG.

(pascal *)(void).

unsigned int.

HANDLE.

HANDLE.

HANDLE.

HANDLE.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ для всСх ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ «ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π°…». Π‘Π»ΠΈΠΆΠ½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ строятся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСфикса NP, Π° Π΄Π°Π»ΡŒΠ½ΠΈΠ΅ — LP, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ принятой ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти, строятся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСфикса P. НапримСр, BYTE — Ρ‚ΠΈΠΏ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π°ΠΉΡ‚, LPBYTE — дальний ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π±Π°ΠΉΡ‚, Π° NPBYTE — Π±Π»ΠΈΠΆΠ½ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ — Ρ‚ΠΈΠΏ VOID, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ дальний ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ LPVOID.

Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Π΅Π΅ разбСрСмся с Ρ‚ΠΈΠΏΠΎΠΌ HANDLE (ΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ «ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ» ΠΎΡ‚ Π½Π΅Π³ΠΎ): Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Windows создаСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΊΠ½ΠΎ). Π­Ρ‚Π° структура Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π½Π΅ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, Π° ΡΠ°ΠΌΠΎΠΉ систСмС. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, вводится ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ понятиС Ρ…Π΅Π½Π΄Π» (дСскриптор, handle). Π₯Π΅Π½Π΄Π» Π² Windows — это просто Ρ†Π΅Π»ΠΎΠ΅ число, ΠΈΠ½ΠΎΠ³Π΄Π° Π½ΠΎΠΌΠ΅Ρ€, присвоСнный Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ЕдинствСнноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ — HFILE, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — HFILE_ERROR, Ρ€Π°Π²Π½ΠΎΠ΅ -1 (это связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ…Π΅Π½Π΄Π» Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» заимствован Ρƒ DOS, Π³Π΄Π΅ Ρ…Π΅Π½Π΄Π» 0 ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ стандартноС устройство Π²Ρ‹Π²ΠΎΠ΄Π° stdout). ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Ρ…Π΅Π½Π΄Π»Π° Π² Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎ, Π° Π΄Π»Ρ облСгчСния контроля Ρ‚ΠΈΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ большоС количСство ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΡ‚ Ρ…Π΅Π½Π΄Π»Π° Ρ‚ΠΈΠΏΠΎΠ².

Win32.

Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ Π½Π°Π΄ΠΎ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для Win32 API всСгда примСняСтся 32Ρ… разрядная flat-модСль памяти. Π’ ΡΡ‚ΠΎΠΌ случаС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ far ΠΈ near Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ся. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Ρ…Π΅Π½Π΄Π», ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏΡƒ unsigned int, становится 32Ρ… разрядным. Π­Ρ‚ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΠ·Ρ€ΡΠ΄Π½Ρ‹ΠΌ слоТностям ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Windows API Ρ…Π΅Π½Π΄Π» часто ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ΡΡ с ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ся Π² ΠΎΠ΄Π½ΠΎΠΌ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌ словС, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ сообщСния, Π° Π² Win32 Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ся — Ρ…Π΅Π½Π΄Π» сам Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всС Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ слово.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Win32 API для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ Ρ…Π΅Π½Π΄Π», Π½ΠΎ ΡƒΠΆΠ΅ Π½Π΅ Ρ‚ΠΈΠΏΠ° HFILE, Π° HANDLE. ΠŸΡ€ΠΈ этом Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ являСтся допустимым ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ стандартноС устройство Π²Ρ‹Π²ΠΎΠ΄Π°, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1 — Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ…Π΅Π½Π΄Π». Для обозначСния Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ Ρ…Π΅Π½Π΄Π»Π° Ρ„Π°ΠΉΠ»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ символ INVALID_HANDLE_VALUE, Ρ€Π°Π²Π½Ρ‹ΠΉ -1. Для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ…Π΅Π½Π΄Π»ΠΎΠ², ΠΊΡ€ΠΎΠΌΠ΅ Ρ…Π΅Π½Π΄Π»ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ², этот символ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ ошибки примСняСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0. ΠŸΡ€ΠΈ этом Ρ‚ΠΈΠΏ HFILE ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» HFILE_ERROR ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² 16Ρ‚ΠΈ разрядных Windows — Π² Π²ΠΈΠ΄Π΅ 16Ρ‚ΠΈ разрядного Ρ†Π΅Π»ΠΎΠ³ΠΎ числа. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ допустимо простоС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… рСализациях Windows API ситуация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ HANDLE соотвСтствуСт 32Ρ… разрядному числу.

ВСнгСрская нотация.

ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ тСкстов C—ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π’Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ странноС написаниС ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. НапримСр:

lpszFileName, wNameLength.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Windows Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ спСцифичныС ΠΏΡ€Π°Π²ΠΈΠ»Π° описания ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ «Π²Π΅Π½Π³Π΅Ρ€ΡΠΊΠ°Ρ нотация» ΠΏΠΎ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ программиста Charles Simonyi ΠΈΠ· Microsoft, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ²ΡˆΠ΅Π³ΠΎ Π΅Π΅. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ вСнгСрской Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибки. Π₯отя, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, это даСтся Ρ†Π΅Π½ΠΎΠΉ увСличСния Π΄Π»ΠΈΠ½Ρ‹ ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ программистским ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ являСтся использованиС мнСмоничСских ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ВСнгСрская нотация ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ для опрСдСлСния смысла ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, FileSize), Π½ΠΎ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΅Π΅ Ρ‚ΠΈΠΏΠ° Π² ΠΈΠΌΡ. НапримСр lpszFileName ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ дальний ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ASCIIZ Π‘Ρ‚Ρ€ΠΎΠΊΠ° ASCII — строка символов Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ASCII, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкст. Однако ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ строки Π»ΠΈΠ±ΠΎ со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ символом (Π² C ΡΡ‚ΠΎ Π±Π°ΠΉΡ‚ с ΠΊΠΎΠ΄ΠΎΠΌ 0 — ASCIIZ), Π»ΠΈΠ±ΠΎ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΄Π»ΠΈΠ½Ρ‹ строки Π² Π²ΠΈΠ΄Π΅ Π»ΠΈΠ΄ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±Π°ΠΉΡ‚Π° (ASCIIB) ΠΈΠ»ΠΈ слова (ASCIIW). строку символов, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ имя Ρ„Π°ΠΉΠ»Π°.

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΏΠ΅Ρ€Π΅Π΄ мнСмоничСским ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ нСбольшой прСфикс, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π΅Π΅ Ρ‚ΠΈΠΏ. Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ строится прСфикс? Из Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСдставлСниС ΠΎΠ± ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ основных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…:

ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ символ.

Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

пояснСниС.

c.

char.

символ.

by.

BYTE.

Π±Π°ΠΉΡ‚.

n.

int.

Ρ†Π΅Π»ΠΎΠ΅ число.

x.

short.

ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€

y.

short.

ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€

i.

int.

Ρ†Π΅Π»ΠΎΠ΅ число.

f, b.

BOOL.

логичСская Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°.

w.

WORD.

слово бСз знака.

h.

HANDLE.

Ρ…Π΅Π½Π΄Π».

l.

LONG.

Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ со Π·Π½Π°ΠΊΠΎΠΌ.

dw.

DWORD.

Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ°.

e.

FLOAT.

число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.

*fn.

функция.

s.

строка.

sz.

строка, ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°ΡΡΡ '' (ASCIIZ).

p.

*.

ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° …

lp.

far*.

дальний ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° …

np.

near*.

Π±Π»ΠΈΠΆΠ½ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° …

Зная эту Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π»Π΅Π³ΠΊΠΎ самим ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Π²Π΅Π½Π³Π΅Ρ€ΡΠΊΠΎΠΉ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. Π”Π°ΠΆΠ΅ Ссли Π’Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ сами ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Π΅Π½Π³Π΅Ρ€ΡΠΊΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚ΠΎ Π·Π½Π°Ρ‚ΡŒ Π΅Π΅ Π²ΡΠ΅ Ρ€Π°Π²Π½ΠΎ Π½Π°Π΄ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° принята Π²ΠΎ Π²ΡΠ΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ Windows. К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ Π΄Π°ΠΆΠ΅ здСсь Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ оказались Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΈ Π’Π°ΠΌ придСтся ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ (с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹) ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ вСнгСрской Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ.

Π’Π°ΠΊ, Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти Π½Π°Π·Π²Π°Π½ΠΈΠ΅ поля cbWndExtra Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ WNDCLASS. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС прСфикс cb Ρ€Π°ΡΡˆΠΈΡ„ровываСтся ΠΊΠ°ΠΊ Count of Bytes.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° прилоТСния Windows.

Π˜Ρ‚Π°ΠΊ, Π΅Ρ‰Π΅ Ρ€Π°Π· посмотрим Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1a. cpp ΠΈ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для написания прилоТСния:

Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΊΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ;

Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Windows;

ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π΅ Π΄Π°Π½Π½ΠΎΠΌΡƒ классу;

ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния, обрабатывая ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Ρƒ сообщСния.

Π’ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅ΠΌΠΎΠΌ Π½Π°ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС эти дСйствия. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: WinProc, init_instance ΠΈ WinMain. Π—Π΄Π΅ΡΡŒ WinProc являСтся ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ, init_instance рСгистрируСт класс ΠΎΠΊΠΎΠ½ (ΠΎΠΊΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ), Π° WinMain создаСт ΠΎΠΊΠ½ΠΎ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ всСго прилоТСния.

МоТно ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий, происходящих Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ ΠΏΡ€ΠΈ запускС прилоТСния. Пока, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π½Π΅ Π²Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π² ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, ограничимся ΠΎΠ±Π·ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ 16Ρ‚ΠΈ разрядного прилоТСния.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ исполняСмый Ρ„Π°ΠΉΠ» Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ Π²Ρ‹Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ для ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ рСсурсы.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ написанному Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ компиляторов startup-ΠΊΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, командная строка, Ρ…Π΅Π½Π΄Π» ΠΊΠΎΠΏΠΈΠΈ прилоТСния ΠΈ ΠΏΡ€.), запускаСт конструкторы статичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

startup-ΠΊΠΎΠ΄ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ WinMain, пСрСдавая Π΅ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π΄Π°Π½Π½Ρ‹Π΅. Ѐункция WinMain разрабатываСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния.

WinMain ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ осущСствляСт Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ класса ΠΎΠΊΠΎΠ½.

Π”Π°Π»Π΅Π΅ WinMain создаСт ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ прилоТСния.

WinMain обСспСчиваСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прилоТСния, организуя Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний. Π’ ΡΡ‚ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ ΠΊ Π½Π΅ΠΌΡƒ сообщСния, выполняСт ΠΈΡ… ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΈΡ… ΠΎΠΊΠ½Ρƒ-ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŽ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΎΠΊΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ).

Оконная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° выполняСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ сообщСний, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠΊΠ½Ρƒ, обСспСчивая Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Π΄Π΅ΠΉΡΡ‚вия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ этого прилоТСния. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ закрытия этого ΠΎΠΊΠ½Π° оконная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ€Ρ‹ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ WinMain.

Когда Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, WinMain ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ исполнСниС своСго ΠΊΠΎΠ΄Π°, выполняя, ΠΏΡ€ΠΈ нСобходимости, Π΄Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ созданных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², послС Ρ‡Π΅Π³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ управлСния ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ WinMain происходит ΠΎΠΏΡΡ‚ΡŒ-ΠΆΠ΅ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ exit-ΠΊΠΎΠ΄, созданный Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ компиляторов. Он Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚ дСструкторы статичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π΄Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠΈΡΡ‚Π΅ΠΌΡƒ.

БистСма освобоТдаСт ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ занятыми рСсурсы, Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Π΅ Π·Π° ΡΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ нСпосрСдствСнно ΠΊΠΎΠ΄Π° прилоТСния, Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ послСднСС Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Windows API разрабатывался Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° систСм Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти Π½Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π΅Ρ‰Π΅ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π»ΠΎ. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ вСрсии Windows ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° XT с 640K ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Из-Π·Π° ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ объСма памяти ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΠ΄Ρ‚ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ухищрСния. Π’Π°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² экономии памяти связан с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ся. Если Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ-ΠΆΠ΅ прилоТСния (скаТСм, Π΄Π²Π° Notepad’Π° для рСдактирования Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²), Ρ‚ΠΎ ΠΊΠΎΠ΄ этих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ. Π’ ΡΡ‚ΠΎΠΌ случаС Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π½ΠΎ Π΄Π»Ρ нСобходимости ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ прилоТСния ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ понятиС Ρ…Π΅Π½Π΄Π» ΠΊΠΎΠΏΠΈΠΈ прилоТСния (instance handle, HINSTANCE).

Ѐункция WinMain.

ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° C (C++) содСрТит Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Π³Π»Π°Π²Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ main. ΠŸΡ€ΠΈ создании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Windows Ρ‚ΠΎΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, ΠΏΡ€Π°Π²Π΄Π° ΠΎΠ½Π° называСтся WinMain ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹:

int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow).

{.

// …

}.

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