Windows, ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΈ ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Windows API. ΠΠΏΠΎΠ»Π½Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², Π²ΠΎΡΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° UNIX ΠΈ ΠΎΡΠΊΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ: "Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Windows ΠΎΡΠΊΡΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ?", "ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π»ΠΈ ΡΠΎΠ±ΠΎΠΉ Windows ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ?", "ΠΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Windows Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΡΠΌ ΠΏΠ°ΡΠ΅Π½ΡΠΎΠ²Π°Π½Π½ΡΠΌ API?" ΠΡΠ²Π΅ΡΡ Π½Π° ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΎΡΠΊΡΡΡΠ°Ρ (open), ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ (industry standard) ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ΅Π½ΡΠΎΠ²Π°Π½Π½ΡΠΉ (proprietary), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΎΠΆΠΈΠ΄Π°ΡΡΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠΊΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌ.
Windows API ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ API ΡΡΠ°Π½Π΄Π°ΡΡΠ° POSIX, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Linux ΠΈ UNIX. Windows Π½Π΅ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ Π₯/Open, ΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΠ΅ΡΡΡ ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΌΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΎΡΠΊΡΡΡΠΎΠΌΡ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠΌΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΈΠ· ΡΠ΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΎΡΠ³Π°Π½Π°ΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠΎΡΡΠΈΡΠΌΠ°ΠΌΠΈ.
Windows ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠΌ. Π₯ΠΎΡΡ Microsoft ΠΈ Π·Π°ΡΠ²Π»ΡΠ΅Ρ ΠΎ ΡΠ²ΠΎΠ΅ΠΉ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΏΡΠΈΡΠΏΠΎΡΠ°Π±Π»ΠΈΠ²Π°ΡΡΡΡ ΠΊ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΎΡΡΠ°ΡΠ»ΠΈ ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈΡ , Π² ΡΡΠΈΡ Π²ΠΎΠΏΡΠΎΡΠ°Ρ ΡΠ°ΠΌΠ° ΠΆΠ΅ ΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠ±ΠΈΡΡΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ Π»ΠΈΡΠ΅. ΠΡΡΡΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ, ΠΏΠΎΠΌΠΈΠΌΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Windows ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π²ΡΠ³ΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΎΡΠΊΡΡΡΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ.
β’ Π£Π½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΡΡΡΠ΅Π΅ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ ΡΡΠ½ΠΊΠ°.
β’ ΠΡΡΡΡΡΡΠ²ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠ΅ ΡΠΈΡΠΌΠ΅Π½Π½ΡΠ΅ "ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ" ΠΈΠ»ΠΈ "ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ", Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π±ΠΎΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, Ρ ΠΎΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ Windows, Π²ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ.
β’ ΠΡΡ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΠ‘-ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠΈΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠΌ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
β’ ΠΠ°Π·ΠΎΠ²Π°Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠΉ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ² ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠΊΠΈΠ΅ ΡΠΏΠΎΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ³ΠΎ, ΠΊ Π΄ΠΎΠ±ΡΡ Π»ΠΈ ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ Π² ΡΠ΅Π»ΠΎΠΌ, ΠΈΠ»ΠΈ ΠΎΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅Π΄ΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΡ Π΄Π΅Π»Ρ, Π΅ΡΠ΅ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈΡΡ. ΠΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΡΠ°ΡΡΡΡ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΡΠΎΠΌ ΡΠΏΠΎΡΠ΅; Π·Π°Π΄Π°ΡΠ° Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΡΠΎΡΡΠΎΠΈΡ Π»ΠΈΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Π² Windows.
Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Windows ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ. Π’Π°ΠΊ, Windows ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π‘ ΠΈ Π‘+ ΠΈ ΡΠ΅Π»ΡΠΉ ΡΡΠ΄ ΠΎΡΠΊΡΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΠΌΠ΅ΠΆΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΡΠΎΠΊΠ΅ΡΡ Windows (Windows Sockets), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ TCP/IP ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π² Internet ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ, Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Ρ Windows. To ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΡΠΌ ΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡ (Remote Procedure Calls, RPC).[6] Π‘ΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΌΠΎΠΉ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΠΏΡΠΈΡΠΎΠ΄Ρ ΠΌΠΎΠ³ΡΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (Π‘Π£ΠΠ) ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ·ΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² (SQL). ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π² ΠΎΠ±ΡΠΈΠΉ ΠΊΡΡΠ³ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows Π²Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Internet, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΠΌΠ°Ρ Web-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ ΠΈΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π°. Windows ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ, ΠΊΠ°ΠΊ TCP/IP, Π° Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΡΠ½ΠΊΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Windows Π²Π°ΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΡΠΈ Π·Π° ΡΠ°Π·ΡΠΌΠ½ΡΡ ΠΏΠ»Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Π½Π½ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ X Window.
Π Π΅Π·ΡΠΌΠΈΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ Windows ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΠΌΠ΅ΠΆΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΈ Ρ ΠΎΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ API ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΎΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ ΡΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ Π΄Π»Ρ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠ΄Π° ΡΠΈΡΡΠ΅ΠΌ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ (compatibility libraries), ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
β’ Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ UNIX, Linux, Macintosh ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠ° ΠΎΠ΄Π½Π° ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Windows, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΌΡΠ»ΡΡΠΎΡ Windows Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Wine, ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ· Windows.
β’ ΠΠ° ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π½Π°Π±ΠΎΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Windows Resource Kit ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft ΠΏΠΎΠ²Π΅ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Windows ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ POSIX. ΠΠ΅ΡΡΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ ΠΏΠΎ ΡΠ²ΠΎΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² ΡΡΠ΅Π΄Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈ Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Microsoft Visual C++.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠΌΠ΅Π΅ΡΡΡ, ΠΏΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΈ ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΠΎΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ API ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Windows, POSIX ΠΈ Π΄Π°ΠΆΠ΅ Macintosh.
ΠΡΠΈΠ½ΡΠΈΠΏΡ, Π»Π΅ΠΆΠ°ΡΠΈΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π΅ 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" β "Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ".