Π Π°Π·Π½ΠΎΠ΅

Windows ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: НОУ ИНВУИВ | ЛСкция | ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Windows с использованиСм Win API

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Windows ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” Π’ΠΈΠΊΠΈΡƒΡ‡Π΅Π±Π½ΠΈΠΊ

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΈΠ· Π’ΠΈΠΊΠΈΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ°Β β€” ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΊΠ½ΠΈΠ³ для ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π°

Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° стрСмится Π±Ρ‹Ρ‚ΡŒ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ источником для Π»ΡŽΠ±Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊΡ‚ΠΎ заинтСрСсован Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Windows. Начинаяя ΠΎΡ‚ Π½ΠΈΠ·ΡˆΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ с Win32 API (C ΠΈ VB Classic) ΠΈ продолТая MFC (C++). ПослС этих Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ…Π²Π°Ρ‡Π΅Π½Π° Ρ‚Π΅ΠΌΠ° COM ΠΈ созданиС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ActiveX Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках программирования. ΠŸΠΎΡ‚ΠΎΠΌ погрузимся Π² Windows DDK ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² для устройств ΠΏΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Windows. Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ программирования Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ уровня, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, написаниС сцСнариСв ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² ASP ΠΈ WSH.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ обсуТдСны: НаписаниС скрин-сСйвСров, созданиС справочныС HTML ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ DLL Ρ„Π°ΠΉΠ»ΠΎΠ².

Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° Π±ΡƒΠ΄Π΅Ρ‚ сфокусирована Π½Π° Ρ‚Π΅ΠΌΡ‹ спСцифичныС Windows ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ углубится Π΅Ρ‰Ρ‘ Π±ΠΎΠ»Π΅Π΅ Π² Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ привСтствуСтся ΠΊ просмотру Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Wikibooks, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ основы программирования Π½Π° ASM, C, C++, Visual Basic ΠΈ Visual Basic.NET ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚Ρ‹ Π² дСталях. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ссылки ΠΊ этим ΠΊΠ½ΠΈΠ³Π°ΠΌ.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ знания ΠΎΠ± языках программирования. ОсобСнно Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Π½ΠΈΠ΅ C, C++ ΠΈ Visual Basic для понимания ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

Section 1: ΠžΡΠ½ΠΎΠ²Ρ‹ Windows[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Section 2: Win32 API ΠΈ UI Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Section 3: ΠšΠ»Π°ΡΡΡ‹ Microsoft Foundation (MFC)[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Section 4: Dynamic Data Exchange (DDE), ActiveX ΠΈ COM[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Section 5: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Устройств[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Section 6: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

АппСндикс[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ Π§Ρ‚Π΅Π½ΠΈΠ΅[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

РСсурсы Wikimedia[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Programming Languages:

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Windows:

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹:

Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ РСсурсы[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

  • Advanced Win32 API Newsgroup
  • Microsoft Developers Network
  • Petzold, Charles, Β«Programming WindowsΒ», Microsoft Press.
  • Hart, Johnathan, Β«Windows System ProgrammingΒ», second edition, 2001.
  • Gordon, Alan, Β«The COM and COM+ Programming PrimerΒ», 2000.
  • Oney, Walter, Β«Programming the Windows Driver ModelΒ», second edition, 2002.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² основС Windows. БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС Windows

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² основС Windows

ПолСзно Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… Windows. Π’ Windows API имССтся мноТСство ΠΊΠ°ΠΊ самых Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… API, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ POSIX API, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π·Π½Π°ΠΊΠΎΠΌΡ‹ программисты, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² UNIX ΠΈ Linux. И хотя с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Windows Π½Π΅ связаны ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ спСцифичСскиС трудности Π² Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΎΠ½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ вас внСсСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Π΅ ΡΡ‚ΠΈΠ»ΡŒ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΡƒ программирования.

НиТС описаны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… характСристик Windows, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Π±Π»ΠΈΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ дальнСйшСго излоТСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°.

МногиС систСмныС рСсурсы Windows ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ядра (kernel objects), для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ обращСния ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ дСскрипторы (handles). По смыслу эти дСскрипторы Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ дСскрипторам (descriptors) Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ (ID) процСссов Π² UNIX.[7]

β€’Β Π›ΡŽΠ±Ρ‹Π΅ манипуляции с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ядра ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с использованиСм Windows API. «Π›Π°Π·Π΅Π΅ΠΊ» для ΠΎΠ±Ρ…ΠΎΠ΄Π° этого ΠΏΡ€Π°Π²ΠΈΠ»Π° Π½Π΅Ρ‚. Подобная организация Ρ€Π°Π±ΠΎΡ‚Ρ‹ согласуСтся с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ абстрагирования Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, хотя сама систСма Windows ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π΅ являСтся.

β€’Β Πš ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ относятся Ρ„Π°ΠΉΠ»Ρ‹, процСссы, ΠΏΠΎΡ‚ΠΎΠΊΠΈ, ΠΊΠ°Π½Π°Π»Ρ‹ мСТпроцСссного взаимодСйствия, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ отобраТСния Ρ„Π°ΠΉΠ»ΠΎΠ², события ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹.

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

β€’Β Windows ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ многочислСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ синхронизации ΠΈ взаимодСйствия, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠ΅ самых Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… запросов.

β€’Β Π‘Π°Π·ΠΎΠ²ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ выполнСния Π² Windows являСтся ΠΏΠΎΡ‚ΠΎΠΊ (thread). Π’ ΠΎΠ΄Π½ΠΎΠΌ процСссС (process) ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

‒ Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ соглашСния ΠΎΠ± использовании ΠΈΠΌΠ΅Π½, Π½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ»ΠΈΠΊΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Windows:

WaitForSingleObject

WaitForSingleObjectEx

WaitForMultipleObjects

WaitNamedPipe

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ нСсколько соглашСний, Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… порядок использования ΠΈΠΌΠ΅Π½ Ρ‚ΠΈΠΏΠΎΠ²:

β€’ ИмСна ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… API, Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΈ Π² Π½ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прописныС Π±ΡƒΠΊΠ²Ρ‹.

К числу Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных относятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

BOOL (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ 32-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для хранСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ логичСского значСния)

HANDLE

DWORD (вСздСсущСС 32-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ°)

LPTSTR (ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· 8– ΠΈΠ»ΠΈ 16-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… символов)

LPSECURITY_ATTRIBUTES

Π‘ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ многочислСнными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ излоТСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°.

β€’Β Π’ ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ опСрация * Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΈ ΠΎΠ½ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ отличия ΠΌΠ΅ΠΆΠ΄Ρƒ указатСлями Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² случаС Ρ‚ΠΈΠΏΠΎΠ² LPTSTR (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ TCHAR *) ΠΈ LPCTSTR (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ const TCHAR *). ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’ΠΈΠΏ TCHAR ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ char, Ρ‚Π°ΠΊ ΠΈ Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ wchar_t.

β€’Β Π’ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ использования ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, β€” ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π² ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, β€” Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ соглашСния. Π’Π°ΠΊ, имя lpszFileName соотвСтствуСт «Π΄Π»ΠΈΠ½Π½ΠΎΠΌΡƒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π½Π° строку, Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΡƒΡŽΡΡ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом», которая содСрТит имя Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ «Π²Π΅Π½Π³Π΅Ρ€ΡΠΊΠΎΠΉ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅ стрСмимся ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, dwAccess β€” Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ слово (32 Π±ΠΈΡ‚Π°), содСрТащСС Ρ„Π»Π°Π³ΠΈ ΠΏΡ€Π°Π² доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Π³Π΄Π΅ «dw» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ «double word» β€” «Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ слово».

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π‘ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ просмотритС систСмныС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ (Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅) Ρ„Π°ΠΉΠ»Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТатся опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, констант, Ρ„Π»Π°Π³ΠΎΠ², ΠΊΠΎΠ΄ΠΎΠ² ошибок ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. МногиС ΠΈΠ· ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… для нас интСрСс Ρ„Π°ΠΉΠ»ΠΎΠ², Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π½ΠΈΠΆΠ΅ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ срСды Microsoft Visual C++ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Program FilesMicrosoft Visual Studio.NETVc7PlatformSDKInclude (ΠΈΠ»ΠΈ Program FilesMicrosoft Visual StudioVC98Include Π² случаС VC++ 6.0):

WINDOWS.H (Ρ„Π°ΠΉΠ», ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²)

WINNT.Н

WINBASE.HΒ 

НаконСц, нСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ API Win32 с самого Π½Π°Ρ‡Π°Π»Π° разрабатывался ΠΊΠ°ΠΊ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ нСзависимый интСрфСйс, ΠΎΠ½ проСктировался с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ обСспСчСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости с API Winl6, Π²Ρ…ΠΎΠ΄ΠΈΠ²ΡˆΠΈΠΌ Π² состав Windows 3.1. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ досадным с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния программиста послСдствиям:

β€’Β Π’ названиях Ρ‚ΠΈΠΏΠΎΠ² Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ элСмСнты Π°Π½Π°Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΌΠ°, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² случаС Ρ‚ΠΈΠΏΠΎΠ² LPTSTR ΠΈ LPDWORD, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° «Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся простым 32– ΠΈΠ»ΠΈ 64-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² указатСлях ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° отсутствуСт. Иногда ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ «Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ» опускаСтся, ΠΈ Ρ‚ΠΎΠ³Π΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΈΠΏΡ‹ LPVOID ΠΈ PVOID ΡΠ²Π»ΡΡŽΡ‚ΡΡ эквивалСнтными.[8]

β€’Β Π’ ΠΈΠΌΠ΅Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… символичСских констант, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ WIN32_FIND_DATA, Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ «WIN32», хотя Ρ‚Π΅ ΠΆΠ΅ константы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ Π² Win64.

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

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π½Π° страничкС

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π³Π»Π°Π²Π° >

ВСрсии Windows. БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС Windows

ОБ Windows, Π² Π²ΠΈΠ΄Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ вСрсий, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, начиная с 1993 Π³ΠΎΠ΄Π°. Π’ΠΎ врСмя написания Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π° Web-сайтС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft Π² качСствС основных Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вСрсии:

β€’Β Windows XP, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ выпуски Home, Professional ΠΈ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ…, которая ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ коммСрчСских PC, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΡ… Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ Π½Π° сСгодняшний дСнь, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ лэптопы ΠΈ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠΈ, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΡƒΠΆΠ΅ установлСнной Windows XP ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ различия ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, сущСствСнного значСния Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚.

β€’Β Windows Server 2003, которая выпускаСтся Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Small Business Server, Storage Server 2003, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ…, ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ прилоТСниями для прСдприятий ΠΈ сСрвСрными прилоТСниями. Π’ систСмах, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows Server 2003, часто примСняСтся симмСтричная многопроцСссорная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (Symmetric Multiprocessing, SMP), Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰Π°ΡΡΡ использованиСм ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… нСзависимых процСссоров. НовыС 64-разрядныС прилоТСния, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ Win64, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ прСимущСствСнно Π½Π° систСмах Windows Server 2003.

β€’Β Windows 2000, которая доступна Π² Π²ΠΈΠ΄Π΅ выпусков Professional ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… разновидностСй выпусков Server ΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Π² ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π² сСрвСрных систСмах. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Windows XP ΠΈ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ вСрсии Windows вытСснят Windows 2000, ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΆΠ΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π°.

β€’ Windows Embedded, Windows Π‘Π• ΠΈ Windows Mobile, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой спСциализированныС вСрсии Windows, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° использованиС Π² ΠΌΠ°Π»Ρ‹Ρ… систСмах, Ρ‚Π°ΠΊΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ Ρ€ΡƒΡ‡Π½Ρ‹Π΅ (palmtop) ΠΈ встроСнныС (embedded) устройства ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ подмноТСства возмоТностСй Windows.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π½Π° страничкС

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π³Π»Π°Π²Π° >

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ процСсса. БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС Windows

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

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ принято Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ процСссах-ΠΏΡ€Π΅Π΄ΠΊΠ°Ρ…, ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… процСссах (parent processes), ΠΈ процСссах-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°Ρ…, ΠΈΠ»ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… процСссах (child processes), ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами Windows эти ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ фактичСски Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. ИспользованиС Π΄Π°Π½Π½ΠΎΠΉ тСрминология являСтся просто ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ способом выраТСния Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ процСсс пороТдаСтся Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

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

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

BOOL CreateProcess(lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpsaProcess, LPSECURITY_ATTRIBUTES lpsaThread, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurDir, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcInfo)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ создания процСсса ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°Β β€”Β TRUE, ΠΈΠ½Π°Ρ‡Π΅Β β€” FALSE.Β 

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

НСкоторыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ дальнСйшСго ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ обсуТдСния Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ смысл ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… станСт для вас Π±ΠΎΠ»Π΅Π΅ понятным ΠΏΡ€ΠΈ рассмотрСнии ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.


lpApplicationName ΠΈ lpCommandLine (послСдний ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ LPTSTR, Π° Π½Π΅ LPCTSTR) β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ вмСстС для указания исполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΎ Ρ‡Π΅ΠΌ говорится Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

lpsaProcess ΠΈ lpsaThread β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° структуры Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹ процСсса ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°. ЗначСниям NULL соотвСтствуСт использованиС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹, Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ эти значСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π°ΠΌΠΈ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Π³Π»Π°Π²Ρ‹ 15, посвящСнной Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ срСдств бСзопасности Windows.

bInheritHandles β€” ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, наслСдуСт Π»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ процСсс наслСдуСмыС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ дСскрипторы (Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅) ΠΈΠ· Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ процСсса. НаслСдуСмыС дСскрипторы ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ исходныС, ΠΈ ΠΈΡ… обсуТдСниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ².

dwCreationFlags β€” ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π² сСбС нСсколько Ρ„Π»Π°Π³ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

β€’ CREATE_SUSPENDED β€” ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ основной ΠΏΠΎΡ‚ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ создан Π² приостановлСнном состоянии ΠΈ Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ лишь послС Π²Ρ‹Π·ΠΎΠ²Π° функция ResumeThread.Β 

β€’Β DETACHED_PROCESS ΠΈ CREATE_NEW_CONSOLEΒ β€” Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ„Π»Π°Π³ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ процСсса, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ консоль отсутствуСт, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” процСсса, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ имССтся собствСнная консоль. Если Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих Ρ„Π»Π°Π³ΠΎΠ² Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ процСсс наслСдуСт консоль Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса.

β€’Β Create_New_Process_Group β€” ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ создаваСмый процСсс являСтся ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ для Π½ΠΎΠ²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ процСссов. Если всС процСссы, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅, Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ±Ρ‰ΡƒΡŽ консоль, Ρ‚ΠΎ всС ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ сигналы консоли (Ctrl-C ΠΈΠ»ΠΈ Ctrl-break). ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… сигналов консоли ΠΎΠΏΠΈΡΡ‹Π²Π°Π»ΠΈΡΡŒ Π² Π³Π»Π°Π²Π΅ 4, Π° ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ продСмонстрировано Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ 4.5. УпомянутыС Π³Ρ€ΡƒΠΏΠΏΡ‹ процСссов Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ процСссов UNIX ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅.

НСкоторыС ΠΈΠ· Ρ„Π»Π°Π³ΠΎΠ² ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ процСсса. О Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… значСниях этих Ρ„Π»Π°Π³ΠΎΠ² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ говорится Π² Π³Π»Π°Π²Π΅ 7. Пока ΠΆΠ΅ Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ достаточно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса (этот Ρ€Π΅ΠΆΠΈΠΌ устанавливаСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NORMAL_PRIORITY_CLASS.

lpEnvironment β€” ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π±Π»ΠΎΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² настройки окруТСния Π½ΠΎΠ²ΠΎΠ³ΠΎ процСсса. Если Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ процСсс Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² окруТСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса. Π‘Π»ΠΎΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² содСрТит строки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π΄Π°Π½Ρ‹ ΠΏΠ°Ρ€Ρ‹ «ΠΈΠΌΡ-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡƒΡ‚ΠΈ доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ.

lpCurDir β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π½ΠΎΠ²ΠΎΠ³ΠΎ процСсса. Если Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, Ρ‚ΠΎ Π² качСствС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса.

lpStartupInfo β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру, которая описываСт внСшний Π²ΠΈΠ΄ основного ΠΎΠΊΠ½Π° ΠΈ содСрТит дСскрипторы стандартных устройств Π½ΠΎΠ²ΠΎΠ³ΠΎ процСсса. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GetStartupInfo. МоТно ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, ΠΎΠ±Π½ΡƒΠ»ΠΈΠ² структуру STARTUPINFO ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateProcess. Для указания стандартных устройств Π²Π²ΠΎΠ΄Π°, Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… слСдуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ значСния ΠΏΠΎΠ»Π΅ΠΉ дСскрипторов стандартных устройств (hStdInput, hStdOutput ΠΈ hStdError) Π² структурС STARTUPINFO. Π§Ρ‚ΠΎΠ±Ρ‹ эти значСния Π½Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ, слСдуСт Π·Π°Π΄Π°Ρ‚ΡŒ для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ элСмСнта этой ΠΆΠ΅ структуры, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, элСмСнта dwFlags, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ STARTF_USESTDHANDLES ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ всС дСскрипторы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌΡƒ процСссу. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ эти дСскрипторы ΡΠ²Π»ΡΡŽΡ‚ΡΡ наслСдуСмыми ΠΈ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateProcess Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° bInheritHandles установлСно Ρ€Π°Π²Π½Ρ‹ΠΌ TRUE. Π‘ΠΎΠ»Π΅Π΅ подробная информация ΠΏΠΎ этому вопросу, сопровоТдаСмая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, приводится Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «ΠΠ°ΡΠ»Π΅Π΄ΡƒΠ΅ΠΌΡ‹Π΅ дСскрипторы».Β 

lpProInfΠΎ β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ значСния дСскрипторов ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² процСсса ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° PROCESS_INFORMATION, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ, ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:Β 

typedef struct PROCESS_INFORMATION {

Β HANDLE hProcess;

Β HANDLE hThread;

Β DWORD dwProcessId;

Β DWORD dwThreadId;

} PROCESS_INFORMATION;

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Новый процСсс ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ, Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈ ΠΈΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateProcess. По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ этого Π²Ρ‹Π·ΠΎΠ²Π° Π»ΡŽΠ±Ρ‹Π΅ измСнСния характСристик Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ отразятся Π½Π° Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌ процСссС. Π’Π°ΠΊ, послС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateProcess Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ, Π½ΠΎ Π½Π° Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ процСсс это Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ влияния, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ сам Π½Π΅ смСнит Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Оба процСсса ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нСзависимы Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.Β 

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

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, функция CreateProcess Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ для UNIX Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ fork ΠΈ execl (ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· пяти ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ exec). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Windows ΠΏΡƒΡ‚ΠΈ доступа Π² UNIX ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды PATH.

Как Ρ€Π°Π½Π΅Π΅ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «ΠΏΡ€Π΅Π΄ΠΎΠΊ-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ» ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами Π² Windows Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π’Π°ΠΊ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ процСсса Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒΡΡ Π΄Π°ΠΆΠ΅ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ процСсс. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Windows ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹ процСссов. БущСствуСт, ΠΎΠ΄Π½Π°ΠΊΠΎ, ограничСнная Ρ„ΠΎΡ€ΠΌΠ° Π³Ρ€ΡƒΠΏΠΏΡ‹ процСссов, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС процСссы ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ события консоли.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ Windows ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ дСскрипторами, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ процСссов, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² UNIX дСскрипторы процСссов ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π½Π° страничкС

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π³Π»Π°Π²Π° >

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅. БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС Windows

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

Win32/Win64 API, ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎ Windows API, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ сСмСйством 32– ΠΈ 64-разрядных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² настоящСС врСмя входят Windows XP, Windows 2000 ΠΈ Windows Server 2003. К числу Ρ€Π°Π½Π½ΠΈΡ… прСдставитСлСй этого сСмСйства относятся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы Windows NT, Windows Me, Windows 98 ΠΈ Windows 95; Π² настоящСС врСмя эти систСмы ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ способны Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΈ ΠΏΠΎΠ΄ ΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ. Вопросы ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Win32 ΠΊ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉΡΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Win64 ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. Win64, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Π² качСствС 64-разрядного интСрфСйса Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСрсиях Windows Server 2003 ΠΈ Windows XP, ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Win32.

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

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


Авторы ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠ½ΠΈΠ³, посвящСнных Windows, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΡΡŽΡ‚ объяснСнию Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой процСссы, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ, мСТпроцСссноС взаимодСйствиС, Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊ всС это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ситуациях. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°ΠΌ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с систСмами UNIX, Linux, IBM MVS, Open VMS ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ОБ эти понятия ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹, ΠΈ ΠΎΠ½ΠΈ заинтСрСсованы лишь Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ эти возмоТности Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Windows. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΊΠ½ΠΈΠ³ ΠΏΠΎ Windows Π²Π°ΠΆΠ½ΠΎΠ΅ мСсто отводится ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ программирования Π½Π° основС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π‘ Ρ†Π΅Π»ΡŒΡŽ ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ†ΠΈΠΈ внимания лишь Π½Π° самых Π³Π»Π°Π²Π½Ρ‹Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… возмоТностях, прСдоставляСмых систСмой, Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ Ρ‚Π΅ΠΌΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π½Π΅ затрагиваСтся, ΠΈ ΠΌΡ‹ ограничиваСмся обсуТдСниСм лишь простого консольного символьного Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°.

Π’ соотвСтствии с принятой Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ Ρ‚ΠΎΡ‡ΠΊΠ΅ зрСния Windows β€” это всСго лишь API ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ Π²ΠΏΠΎΠ»Π½Π΅ понятных срСдств. ΠŸΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² ускорСнном ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Windows ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты, нСзависимо ΠΎΡ‚ уровня ΠΈΡ… ΠΎΠΏΡ‹Ρ‚Π°, ΠΈ Π±Π΅Π· знания Windows нСмыслимо обсуТдСниС Ρ‚Π°ΠΊΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ модСль ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Component Object Model, БОМ), разработанная ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Microsoft. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… систСмы Windows прСвосходят ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ систСмы, Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… β€” ΠΎΡ‚ΡΡ‚Π°ΡŽΡ‚ ΠΎΡ‚ Π½ΠΈΡ… ΠΈΠ»ΠΈ находятся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π½Π΅. Π—Π°Π΄Π°Ρ‡Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ эффСктивнСС всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти возмоТности Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ситуациях для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ…, высококачСствСнных ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π½Π° страничкС

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π³Π»Π°Π²Π° >

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС Windows

ΠŸΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π°Π²Ρ‚ΠΎΡ€ руководствовался ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ сообраТСниями:

β€’Β ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΈ практичСски ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Windows.

β€’Β ΠžΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ситуациям ΠΈΠ· сфСры программирования, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ приходится ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, оказания ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΠΉ ΠΈ обучСния. НСкоторыС ΠΈΠ· ΠΌΠΎΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅ΠΉ использовали ΠΊΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈ построСнии собствСнных систСм. ΠŸΡ€ΠΈ ΠΎΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΠΉ ΠΌΠ½Π΅ часто ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² эту ΠΊΠ½ΠΈΠ³Ρƒ, Π° Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… случаях ΠΊΠΎ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ с ΠΊΠΎΠ΄Π°ΠΌΠΈ, нСпосрСдствСнно взятыми ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠΉ. (ΠšΡΡ‚Π°Ρ‚ΠΈ, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ Π² своСй Ρ€Π°Π±ΠΎΡ‚Π΅, Π° Ссли Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π΅Ρ‰Π΅ ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ Π² ΠΌΠΎΠΉ адрСс, Ρ‚ΠΎ я Π±ΡƒΠ΄Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π΄.) НСрСдко эти ΠΊΠΎΠ΄Ρ‹ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»ΠΈΡΡŒ ΠΌΠ½Π΅ ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… частСй ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² БОМ ΠΈΠ»ΠΈ C++. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° врСмя ΠΈΡ… ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΈ допустимый объСм ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Ρ‹ ΠΊ «Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ» ΠΈ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ «Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅» Π·Π°Π΄Π°Ρ‡ΠΈ.

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

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

β€’Β ΠœΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π³Π»Π°Π²Π°Ρ… Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ UNIX, ΠΊΠ°ΠΊ ls, touch, chmod ΠΈ sort, ΠΈ Ρ‚Π΅ΠΌ самым ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Windows Π² Π·Π½Π°ΠΊΠΎΠΌΠΎΠΌ для части Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ контСкстС, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ создавая ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.[2] ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΡ†Π΅Π½ΠΊΡƒ прСимущСств Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, достигаСмых Π·Π° счСт использования ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Ρ‹Ρ… срСдств Windows. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π’.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, нСбольшой Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ услоТнСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… случаях сущСствСнно Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‚.

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

ВсС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΡ‚Π»Π°ΠΆΠ΅Π½Ρ‹ ΠΈ протСстированы Π² срСдах ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Windows XP, Windows 2000 ΠΈ Windows Server 2003.– Π’ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… случаях тСстированиС ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Windows 9x ΠΈ Windows NT. И хотя для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² основном использовались однопроцСссорныС систСмы Π½Π° Π±Π°Π·Π΅ процСссоров Intel, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° многопроцСссорных систСмах. ΠŸΡ€ΠΈ тСстировании ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ использовались ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколько ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… с сСрвСром. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½ΠΈΠΊΠΎΠ³Π΄Π° нСльзя с ΠΏΠΎΠ»Π½ΠΎΠΉ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΡΠ²Π»ΡΡ‚ΡŒ ΠΎ коррСктности ΠΈΠ»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΈΡ… пригодности для Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ. НСсомнСнно, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСдостатки ΠΈ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ… Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ β€” Ρ‚Π°ΠΊΠΎΠ²Π° ΡƒΡ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ любого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π°Π²Ρ‚ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ искрСннС Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ всСм, ΠΊΡ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»Π΅Ρ‚ сообщСния ΠΎ Π»ΡŽΠ±Ρ‹Ρ… Π΄Π΅Ρ„Π΅ΠΊΡ‚Π°Ρ…, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Π° Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ β€” ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π½Π° страничкС

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π³Π»Π°Π²Π° >

БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ – НизкоуровнСвоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Π₯Π°Π±Ρ€

ΠœΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ПК Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ Windows 10. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ происходит Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ софта ΠΈ ΠΆΠ΅Π»Π΅Π·Π°.

Π‘Ρ‚Π°Ρ€Ρ‚ систСмы

ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΎΡ‚ питания ΠΈ кондСнсаторы Π½Π° матСринской ΠΏΠ»Π°Ρ‚Π΅ Ρ€Π°Π·Ρ€ΡΠ΄ΠΈΠ»ΠΈΡΡŒ. Π”ΠΎ эры смартфонов ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ часто Π³Π»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΈ Ссли ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π΅ Π»Π΅Ρ‡ΠΈΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‚ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π΄ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒ Π±Π°Ρ‚Π°Ρ€Π΅ΡŽ ΠΈ ΠΆΠ΄Π°Ρ‚ΡŒ 10 сСкунд, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ состояниС ОБ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ρ‡ΠΈΠΏΡ‹ Π½Π° матСринской ΠΏΠ»Π°Ρ‚Π΅ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ устройств ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ сохраняя состояниС, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ОБ ΠΊ Π½ΠΈΠΌ просто Ρ€Π΅ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΈΠ»ΠΈΡΡŒ. 10 сСкунд β€” врСмя Π½Π° разрядку кондСнсаторов, состояниС Ρ‡ΠΈΠΏΠΎΠ² сбрасываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ.
Если ΠΆΠ΅ ПК ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ Ρ€ΠΎΠ·Π΅Ρ‚ΠΊΠ΅ ΠΈΠ»ΠΈ Π±Π°Ρ‚Π°Ρ€Π΅Π΅, Ρ‚ΠΎ ΠΎΠ½ находится Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Stand-By, это Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΠΎ шинС питания подаётся малСнькоС напряТСния (5Π’) ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°ΠΏΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡ΠΈΠΏΡ‹ Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ½ΠΊΠ΅. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ это систСмный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΠΏΠΎ сути это ΠΌΠΈΠ½ΠΈ-ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ большой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Power ΠΎΠ½ просит Π±Π»ΠΎΠΊ питания/Π±Π°Ρ‚Π°Ρ€Π΅ΡŽ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ большС напряТСния ΠΈ послС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ вСсь Ρ‡ΠΈΠΏ-сСт, Π² Ρ‚ΠΎΠΌ числС ΠΈ процСссор. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΏΠ΅Ρ€Π΅ΠΊΠ°Ρ‡ΠΊΡƒ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ½ΠΊΠΈ (BIOS/UEFI) Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ настройку CPU Π½Π° Π΅Ρ‘ исполнСниС.
Π”ΡƒΠΌΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Power это Ρ€ΡƒΠ±ΠΈΠ»ΡŒΠ½ΠΈΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π°Ρ‘Ρ‚ элСктричСство Π½Π° CPU ΠΈ Ρ‚ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ с Π·Π°Ρ€Π°Π½Π΅Π΅ извСстного адрСса ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ BIOS Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ старыС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ. Кнопка Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ находится Π½Π° своСй ΠΏΠ»Π°Ρ‚Π΅, вмСстС со свСтодиодами состояний ΠΈ ΠΊ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ½ΠΊΠ΅ ΠΎΠ½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΡ‘ΠΌ. На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅ Π²ΠΈΠ΄Π½Ρ‹ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ для ΠΊΠ½ΠΎΠΏΠΊΠΈ Power, Reset, Π° Ρ‚Π°ΠΊΠΆΠ΅ свСтодиодов с состояниСм Power ΠΈ чтСния Тёсткого диска. НаТатиС ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ пСрСводится Π² сигнал Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ½ΠΊΠΈ, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ достигаСт систСмный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.

Windows Programming — Wikibooks, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΊΠ½ΠΈΠ³ΠΈ для ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π°

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° ΠΏΡ€ΠΈΠ·Π²Π°Π½Π° ΡΡ‚Π°Ρ‚ΡŒ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ источником для любого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Windows. Он начинаСтся Π½Π° самом Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ с Win32 API (C ΠΈ VB Classic), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² MFC (C ++). Помимо этих основных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ COM ΠΈ созданиС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ActiveX Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ углубляСмся Π² Windows DDK ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² устройств для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Windows.НаконСц, ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°Π΄Π°Ρ‡Π°ΠΌ программирования самого высокого уровня, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, сцСнарии ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ASP ΠΈ WSH.

Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹: написаниС Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»Π΅ΠΉ экрана, созданиС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ справки HTML ΠΈ компиляция Ρ„Π°ΠΉΠ»ΠΎΠ² DLL.

Π’ этой ΠΊΠ½ΠΈΠ³Π΅ основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся Ρ‚Π΅ΠΌΠ°ΠΌ, относящимся ΠΊ Windows, ΠΈ Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ программирования. Для получСния ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ рСкомСндуСтся ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΠΌΠΈ Π’ΠΈΠΊΠΈΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ°, ΠΎΠ½ΠΈ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ASM, C, C ++, Visual Basic ΠΈ Visual Basic.NET ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ссылки Π½Π° эти ΠΊΠ½ΠΈΠ³ΠΈ.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ языками программирования. Π’ частности, для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² этой ΠΊΠ½ΠΈΠ³ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ знания C, C ++ ΠΈ Visual Basic.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Π Π°Π·Π΄Π΅Π» 1: ΠžΡΠ½ΠΎΠ²Ρ‹ Windows [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Π Π°Π·Π΄Π΅Π» 2: Win32 API ΠΈ элСмСнты управлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Π Π°Π·Π΄Π΅Π» 3. ΠšΠ»Π°ΡΡΡ‹ Microsoft Foundation (MFC) [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Π Π°Π·Π΄Π΅Π» 4: ДинамичСский ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (DDE), ActiveX ΠΈ COM [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Π Π°Π·Π΄Π΅Π» 5: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° устройства [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Π Π°Π·Π΄Π΅Π» 6: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

РСсурсы Π’ΠΈΠΊΠΈΠΌΠ΅Π΄ΠΈΠ° [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

языков программирования:

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Windows:

БвязанныС Ρ‚Π΅ΠΌΡ‹:

Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ рСсурсы [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

  • Π“Ρ€ΡƒΠΏΠΏΠ° новостСй Advanced Win32 API
  • Π‘Π΅Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Microsoft
  • ΠŸΠ΅Ρ‚Ρ†ΠΎΠ»ΡŒΠ΄, Π§Π°Ρ€Π»ΡŒΠ·, Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ WindowsΒ», Microsoft Press
  • Π₯Π°Ρ€Ρ‚, Π”ΠΆΠΎΠ½Π°Ρ‚Π°Π½, «БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ WindowsΒ», Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, 2001 Π³.ISBN 0201703106
  • Π“ΠΎΡ€Π΄ΠΎΠ½, Алан, Β«Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ COM ΠΈ COM +Β», 2000, ISBN 0130850322
  • ОнСй, Π£ΠΎΠ»Ρ‚Π΅Ρ€, Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° WindowsΒ», Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, 2002 Π³. ISBN 0735618038

.

Как Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Windows?

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *