Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
Π£ΡΠΎΠΊ β166. Π Π°Π½Π½Π΅Π΅ ΠΈ ΠΠΎΠ·Π΄Π½Π΅Π΅ Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΡ
ΠΠ±Π½ΠΎΠ²Π». 15 Π‘Π΅Π½ 2021 |
ΠΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ Π·Π½Π°Π΅ΠΌ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΡΠΎΠΊΠΎΠ², Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ·ΡΠΊΠ΅ C++ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΡΠΎΠΊΠ° Π·Π° ΡΡΡΠΎΠΊΠΎΠΉ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ main(). ΠΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΡΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ ΡΠΎΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ Π½Π°ΡΠ°Π»Ρ ΠΊΠΎΠ΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΊΡΠ΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ?
ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ΅ΠΉΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ. Π’Π°ΠΊ ΠΆΠ΅ ΠΈ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ: ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΡΡΠ΅ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΠΉ Π°Π΄ΡΠ΅Ρ.
Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² (ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ) Π² Π°Π΄ΡΠ΅ΡΠ°. Π₯ΠΎΡΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π° ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡ .
Π Π°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΡΠΌΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΡΠΌΠΎΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ ΡΡΠ΅ΠΉΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΏΡΡΠΌΡΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΡΠΌΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π½Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ. Π Π°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ Β«ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°Β») ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ (ΠΈΠ»ΠΈ Π»ΠΈΠ½ΠΊΠ΅Ρ) ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ²ΡΠ·Π°ΡΡ ΠΈΠΌΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ) Ρ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ. ΠΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ (ΠΈΠ»ΠΈ Π»ΠΈΠ½ΠΊΠ΅Ρ) Π²ΡΡΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ½ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π°Π΄ΡΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅:
ΠΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°ΡΡ Π½Π°ΠΏΠ΅ΡΡΠ΄, ΠΊΠ°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ Β«Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°Β»). Π ΡΠ·ΡΠΊΠ΅ C++ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΊΡΠ°ΡΡΠ΅, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ β ΡΡΠΎ ΡΠΈΠΏ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π€ΡΠ½ΠΊΡΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΡΠ΅ΡΠ΅Π· ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ·ΠΎΠ²Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ add():
ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΠΊ Π½Π΅ΠΏΡΡΠΌΠΎΠΉ (ΠΈΠ»ΠΈ Β«ΠΊΠΎΡΠ²Π΅Π½Π½ΡΠΉΒ») Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°-ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Π° Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΡΠΌΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ:
ΠΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Β«ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΒ» ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. Π‘ ΡΠ°Π½Π½ΠΈΠΌ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ Π°Π΄ΡΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘ ΠΏΠΎΠ·Π΄Π½ΠΈΠΌ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π°Π΄ΡΠ΅Ρ, Ρ ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ. ΠΡΠΎΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°Π³ ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠ΅, Π½Π΅ΠΆΠ΅Π»ΠΈ ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡ, ΠΊΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΄ΠΎ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Π² C#
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π² Interface.dll. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ΅ΠΉ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π΅Π½, Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ dll-ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ Π»Π΅ΠΆΠ°ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ Interdace.dll.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° someMethod ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° name. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΠ»Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π° (ΠΌΠΎΠ΄ΡΠ»Ρ) Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ· Interdace.dll, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΠΏΠ»Π°Π³ΠΈΠ½, ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π»ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΠ°ΠΊ, ΠΌΠΎΠ΄ΡΠ»ΠΈ Π³ΠΎΡΠΎΠ²Ρ. ΠΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ MainApp. MainApp Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ²ΡΡ
, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΡ
ΠΊ ΡΠΈΠΏΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (ΡΠ°ΠΊ ΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ Π² MainApp).
ΠΠΎΠΈΡΠΊ:
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° LoadFile ΠΊΠ»Π°ΡΡΠ° Assembly ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈ ΡΠ±ΠΎΡΠΊΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π² ΠΌΠ΅ΡΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ»Π°ΡΡ Activator β ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠΈΠΏΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° CreateInstance ΠΊΠ»Π°ΡΡΠ° Activator ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π² ΠΌΠ΅ΡΠΎΠ΄ ΡΠΈΠΏ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠ·ΡΠ²Π°Ρ loadPlugins() ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΌΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΈΠΌ Π²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π½Π°Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ dlls, Ρ ΠΊΠΎΡΠΎΡΡΡ
ΠΊΠ»Π°ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΠ°Π»Π΅Π΅ Π΄Π΅Π»ΠΎ Π·Π° Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ-Π»ΠΈΠ±ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄.
ΠΠ΄Π΅ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΠ±ΠΎΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ»ΠΎ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΎΠ±ΠΎΠΊΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Plugin1.pl1.someMethod() ΠΈΠ»ΠΈ Plugin2.pl2.someMethod().
Π ΠΊΠ°ΠΊ ΠΆΠ΅ Π±ΡΡΡ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ? ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠΌΠΎΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ. ΠΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ Invoke() ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΠΈΠΌΡ.
Π’Π°ΠΊ Π²ΡΠ·ΠΎΠ²Π΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΠΊΠ»Π°ΡΡΠ° ΠΏΠ»Π°Π³ΠΈΠ½Π°_2. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Invoke() ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ null.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Invoke Π²ΡΠ·Π²Π°ΡΡ Π½Π΅ΡΡΠ°ΡΠΈΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄.
ΠΡΠ°ΠΊ, ΠΌΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°Π»ΠΈ ΡΠ±ΠΎΡΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ ΠΈ Π²ΡΠ·ΡΠ²Π°Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅) Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β ΠΎΠ΄Π½ΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ, ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π½Π° Π²ΠΊΡΡ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ.
ΠΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΈ Π»Π΅ΠΆΠ°Ρ Π·Π΄Π΅ΡΡ
ΠΠΎΠ·Π΄Π½Π΅Π΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Π² PHP (Π§Π°ΡΡΡ I)
ΠΠΎΠ·Π΄Π½Π΅Π΅ Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ (Late Static Binding, LSB) ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΡΡΠ½ΠΎ ΡΠ΅ΠΌΠΎΠΉ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠΈ Π³ΠΎΠ΄Π° Π² ΠΊΡΡΠ³Π°Ρ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² PHP (ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΌΡ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π² PHP 5.3). ΠΠΎ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ? Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ Π²Π°Ρ ΠΊΠΎΠ΄.
ΠΠ° Π²ΡΡΡΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² PHP, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠ»Π° Π² ΠΠ°ΡΠΈΠΆΠ΅ Π² Π½ΠΎΡΠ±ΡΠ΅ 2005 Π³ΠΎΠ΄Π°, ΡΠ΅ΠΌΠ° ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ½ΠΈ ΡΠΎΠ³Π»Π°ΡΠΈΠ»ΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, Π½Π°ΡΡΠ΄Ρ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΡΠ»ΠΈ Π½Π° ΠΏΠΎΠ²Π΅ΡΡΠΊΠ΅ Π΄Π½Ρ. ΠΠ΅ΡΠ°Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ Π±ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Ρ Π² Ρ ΠΎΠ΄Π΅ ΠΎΡΠΊΡΡΡΡΡ Π΄ΠΈΡΠΊΡΡΡΠΈΠΉ.
Π‘ ΡΠ΅Ρ ΠΏΠΎΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ Π³ΡΡΠ΄ΡΡΠ°Ρ ΡΠΈΡΠΊΠ°, ΠΏΡΠΎΡΠ»ΠΎ Π΄Π²Π° Π³ΠΎΠ΄Π°. Π Π²ΠΎΡ Π½Π°ΠΊΠΎΠ½Π΅Ρ LSB ΡΡΠ°Π»ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² PHP 5.3. ΠΠΎ ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ»ΠΎ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ PHP, ΠΈΠ· Π·Π°ΠΌΠ΅ΡΠΎΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½ΠΈΡΠΊΠ° Π² ΠΌΠ°Π½ΡΠ°Π»Π΅.
ΠΡΠ»ΠΈ ΠΊΡΠ°ΡΠΊΠΎ, Π½ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Π²ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π½ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌ, ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΡΠΎΠΌΠΊΠ°, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ΄Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ»Π°ΡΡ Ale ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π» ΠΌΠ΅ΡΠΎΠ΄ getName(), Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ self Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠ»Π°ΡΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΊΠ»Π°ΡΡ Beer). ΠΡΠΎ ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΈ Π² PHP 5.3, Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΎΡΡ ΡΠ»ΠΎΠ²ΠΎ static. Π ΡΠ½ΠΎΠ²Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΠ²ΠΎΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ static ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² ΠΊΠ»Π°ΡΡΠ΅ Π³Π΄Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ getStaticName(). Π‘Π»ΠΎΠ²ΠΎ static Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π», Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ self ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ PHP.
ΠΠ½ΡΡΡΠ΅Π½Π½Π΅, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ (ΠΈ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΡΠΈΡΠΈΠ½Π° ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Π½Π°Π·Π²Π°Π»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΈΠΌ) ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°, Π² ΡΠΎΠΌ, ΡΡΠΎ PHP ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ self::NAME Π²ΠΎ Π²ΡΠ΅ΠΌΡ Β«ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈΒ» (ΠΊΠΎΠ³Π΄Π° ΡΠΈΠΌΠΎΠ²Π»Ρ PHP ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Zend), Π° Π΄Π»Ρ static::NAME Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΠΏΡΡΠΊΠ° (Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ Π² Π΄Π²ΠΈΠΆΠΊΠ΅ Zend).
ΠΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ PHP-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎ Π±Π»Π°Π³ΠΎ.
BestProg
ΠΠ°Π½Π½Π°Ρ ΡΠ΅ΠΌΠ° Π΅ΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΌΡ:
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΎΠΈΡΠΊ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠ°Ρ :
ΠΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΠΈ ΡΠ°Π½Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°:
ΠΡΠ±ΠΎΡ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡΠ° ΠΈ Ρ.ΠΏ.) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ:
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ:
Π ΠΈΡΡΠ½ΠΎΠΊ 1. ΠΠΎΠ·Π΄Π½Π΅Π΅ ΠΈ ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅. ΠΡΠ»ΠΈΡΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π½Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΡΡΠ΅ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π°
Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΌΠ΅ΡΠΎΠ΄ Print() ΠΊΠ»Π°ΡΡΠ° B.
ΠΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Print() ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° C
2. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ? ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ β ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ»Π°Π²Π½ΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° β ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ (ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²). Π ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ β ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ (ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²) ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π΅Π΄ΠΈΠ½ΡΠΌ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² ΡΠΈΡΡΠ°ΡΠΈΡΡ :
3. ΠΠ»Ρ ΠΊΠ°ΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ?
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²:
4. Π‘Ρ Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 3 Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ².
5. ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ. ΠΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
Π Π»ΡΠ±ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π° ΡΡΡΠ»ΠΊΠ° Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ.
ΠΡΠΈΠΌΠ΅Ρ.
6. ΠΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π» ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ?
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄) ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π» ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ. Π§ΡΠΎΠ±Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ» Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
7. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° new Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡΠΈΠΌΠ΅Ρ
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ ( virtual ), ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ Π²Π½ΠΈΠ· ΠΏΠΎ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ.
Π’Π΅ΠΊΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 4 ΡΡ Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Print() Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° new.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ· ΠΊΠ»Π°ΡΡΠ° Figure ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ Rectangle (ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ:
Π ΠΊΠ»Π°ΡΡΠ΅ Rectangle ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ:
Π ΡΡΠ½ΠΊΡΠΈΠΈ main() Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π½Π½Π΅Π³ΠΎ ΠΈ ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ
Π‘Π²ΠΎΠ΄ΠΊΠ°
Π‘ΠΏΠΎΡΠΎΠ± ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠΈΠΏΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ/ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ COM (Component Object Model) ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ. ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΌΠ΅ΠΆΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , ΠΊΠ°ΠΊ Visual Basic ΠΈΠ»ΠΈ Visual Basic Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ ΡΡΠ°Π» Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ β ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IDispatch. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π½Π°ΡΡ ΡΠΎΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ; ΠΏΡΠΎΡΠ΅ΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΠ΅ΡΠΌΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊ Π»ΡΠ±ΠΎΠΌΡ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π΄Π°ΠΆΠ΅ ΠΊ ΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ IDispatch (ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ·Π΄Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ). Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ±Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°?
Binding β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅ (Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½Π΅ΠΌ), ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π² ΠΊΠΎΠ΄Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ΄.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ «Binding» Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠ΅ΠΊΡΡ ΠΊΠ½ΠΈΠ³ΠΈ, Π³Π΄Π΅ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π°Π±Π·Π°ΡΠ΅ Π²Ρ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ «ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π³Π»Π°Π²ΠΎΠΉ 12, ΡΡΡΠ°Π½ΠΈΡΠ° x Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ.» ΠΡ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΡΠ΅Π½ΠΈΡ Π°Π±Π·Π°ΡΠ°, Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠ½ΠΈΠ³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ ΠΈ Π²ΡΡΠ°Π²Π»Π΅Π½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π² Π°Π±Π·Π°Ρ. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΊΠ½ΠΈΠ³ΠΈ, Π΄ΠΎΠΆΠ΄ΠΈΡΠ΅ΡΡ Π΅Π΅ ΠΏΡΠΈΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΊΠ½ΠΈΠ³Π΅.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ. ΠΠΎΠ΄ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ°ΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. Binding β ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°ΠΌΠ΅Π½Ρ ΠΈΠΌΠ΅Π½ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ (ΠΈΠ»ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΡΠΎΡΠ½Π΅Π΅), Π³Π΄Π΅ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ «ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ» ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ»Ρ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Address β ΡΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ (Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ v-ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ), ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ. ΠΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ COM ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π°, ΠΎΠ½Π° ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ v-ΡΠ°Π±Π»ΠΈΡΡ.
Π‘ΡΡΡΠΊΡΡΡΠ° COM-ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΎΡΡΠ°. ΠΡΠ»ΠΈ ΠΊΠΎΠ΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ v. V-ΡΠ°Π±Π»ΠΈΡΠ° β ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π§ΡΠΎΠ±Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° COM, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΡΠΌ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ, ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ΅ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΡΡ ΠΎΡ IUnknown, ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π΄Π»Ρ IUnknown. ΠΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² v-table (IUnknown:: Release).
Π ΡΡΠ°ΡΡΡΡ, Visual Basic ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Visual Basic Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ v. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠ° ΡΡΡΡΠΊΡΡΡΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ COM ΡΠ²ΡΠ·Π°Π½Ρ, ΠΈ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°.
Π Π°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°Π½Π½ΠΈΠΌ (ΠΈΠ»ΠΈ v-ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΌ) ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠ»Ρ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² COM ΡΠ°ΠΊΠ°Ρ ΡΠΎΡΠΌΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° IUnknown COM-ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°? ΠΠ°ΠΊ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Refresh ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ? ΠΡΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠ»ΠΈ ΠΈΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ v Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ Π°Π΄ΡΠ΅ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΈΡ Π²ΡΠ·ΠΎΠ²Π°?
ΠΡΠ²Π΅Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, Π·Π½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ Π·Π°ΡΠ°Π½Π΅Π΅, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ° v. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π½Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠ°ΠΊ ΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ IUnknown. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ «ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅».
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π΅Π³ΠΎ ΡΠ°Π±Π»ΠΈΡΠ° v. Π Visual Basic ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΡΡΠ»ΠΊΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠΈΠΏΠΎΠ², ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (v-table) ΠΈ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°Π΄Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ v-ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Microsoft Office Excel, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Microsoft Excel 8,0 ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠ° | ΠΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ References, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ²ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅ΡΡΡΡ ΡΠΈΠΏ «Excel. Application». ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Ρ ΡΠ°Π½Π½Π΅ΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ:
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², Π½ΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΡΠΎΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ Excel ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ «Unknown»?
ΠΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
COM Π²ΠΊΠ»ΡΡΠ°Π΅Ρ IDispatch. ΠΠ±ΡΠ΅ΠΊΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ IDispatch, ΠΈΠΌΠ΅ΡΡ disp-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (Π΅ΡΠ»ΠΈ ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ) ΠΈΠ»ΠΈ ΡΠ΄Π²ΠΎΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (Π΅ΡΠ»ΠΈ Ρ Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅). ΠΠ»ΠΈΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ IDispatch, Π½Π°Π·ΡΠ²Π°ΡΡΡΡ «ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² IDispatch Π΄Π»Ρ ΠΈΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠ½ΠΎΡΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π²Π°ΠΌ ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅, Π³Π΄Π΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ «Π½Π°ΠΉΡΠΈ» Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π² «Π²ΡΠ΅ΠΌΡ ΡΡΠ΅Π½ΠΈΡ» Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠΆΠ΅ ΠΏΠ΅ΡΠ°ΡΠ°Π»ΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡΡΡ Π΄Π²ΡΠΌΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ: ΠΠ΅ΡΠΈΠ΄ΡΠΎΡΠ½Π°ΠΌΠ΅Ρ ΠΈ Invoke. ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ ΡΡΠ½ΠΊΡΠΈΠΉ (ΡΡΡΠΎΠΊ) Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ (Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌ DISPID), ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ½Π°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Invoke. Π’Π°ΠΊΠ°Ρ ΡΠΎΡΠΌΠ° Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ «ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ».
ΠΠΏΡΡΡ ΠΆΠ΅, Π² Visual Basic ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π·Π°Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠ°ΠΊ «ΠΎΠ±ΡΠ΅ΠΊΡ», Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Visual Basic Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ IDispatch ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΎΡΡΠ°Π²ΡΠ°ΡΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π½Π½Π΅ΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ (Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°) Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ «ΠΏΠΎΠ·Π΄Π½ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°» β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, Π° Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ. ΠΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π² ΡΠ΅Π»ΠΎΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IDispatch β ΡΡΠΎ «ΡΠ°Π½Π½ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°:», ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Visual Basic ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Visible Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠΈ v-table (IDispatch:: Invoke), ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° COM. Π‘Π°ΠΌ COM-ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Excel Π²ΠΈΠ΄ΠΈΠΌΡΠΌ. ΠΡΠΎ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Visual Basic (ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ), Π½ΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ Π·Π½Π°Π΅Ρ ΡΠΎΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠΈΠ²ΡΠ·ΠΊΠ° DISPID
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ (Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π΄Π»Ρ MFC ΠΈ Visual Basic 3,0, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Visual Basic 5,0 ΠΈ 6,0 ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ActiveX) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΡ ΡΠΎΡΠΌΡ ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ DISPID. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ COM ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ DISPID Π΄Π»Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π² IDispatch:: Invoke Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΠ΅ΡΠΈΠ΄ΡΠΎΡΠ½Π°ΠΌΠ΅Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π²ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² COM Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ.
ΠΡΠΈΠ²ΡΠ·ΠΊΡ DISPID Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π² Visual Basic 5,0 ΠΈΠ»ΠΈ 6,0. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ»Π°Π΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΈΠΏΠΎΠ², Π½ΠΎ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ disp-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ) ΠΈ Π΄Π»Ρ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ActiveX, Π½ΠΎ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Visual Basic ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΡΠΈΠ²ΡΠ·ΠΊΠ° DISPID.
ΠΠ°ΠΊΡΡ ΡΠΎΡΠΌΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ?
ΠΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ.
Π Π°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ. ΠΡΠΎ Π»ΡΡΡΠΈΠΉ ΡΡΠ°ΡΡΠ½ΠΈΠΊ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ·Π΄Π΅ΡΠΆΠ΅ΠΊ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ½ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π²Π΄Π²ΠΎΠ΅ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Ρ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ.
Π Π°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Visual Basic ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ IntelliSense, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. Visual Basic ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅Π²Π΅ΡΠ΅Π½, ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΊΠΎΠ΄Π° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° ΡΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Visual Basic 6,0 CallByName), Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅. ΠΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠ°Π½Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π΅Π»Π°ΡΡ Π΅Π΅ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π΅ΡΡΠΈΡΡ
ΠΡΠ»ΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ Π² ΡΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π΅Π»ΡΡΡ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΌΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈΠ»ΠΈ (Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² Π²Π΅ΡΡΠΈΠΈ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Microsoft Office ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² COM. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Office, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°ΡΡΠΈΡΡΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ. ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Office, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΊ ΡΠ°ΠΌΠΎΠΉ ΡΠ°Π½Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Excel 95, Excel 97, Excel 2000 ΠΈ Excel 2002, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ Excel 95 (XL5en32. ΠΠΠ) Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΠ΅ΠΌΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Office ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ ΠΊΡΡΠΏΠ½ΡΠΌΠΈ ΡΠ΄Π²ΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π½Π°ΡΡΡΠ°Π΄Π°ΡΡΡΡ ΠΎΡ ΠΌΠ°ΡΡΠ°Π»ΠΈΠ½Π³Π° Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ . ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄Π° Π½Π° Π²ΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ IDispatch.
Π‘ΡΡΠ»ΠΊΠΈ
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ COM, v-ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠ½ΠΈΠ³Π°Ρ :
Π ΠΎΠΆΠ΅ΡΡΠΎΠ½, ΠΠ°Π»Π΅, Π²Π½ΡΡΡΠΈ COM, ΠΠ‘ΠΠ ΠΠ‘Π‘, ISBN: 1-57231-349-8.
ΠΡΡΠ»Π°Π½Π΄, ΠΡΡΡ, Advanced Visual Basic 6, DevelopMent, 0201707128.