Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Delphi ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² Ρ Π·Π°Π³Π°Π΄ΠΎΡΠ½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΡΠ³Π°ΡΡΠΈΠΌΠΈ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡΠ²Π»Π΅ΡΡ ΠΎΠΏΡΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΈ ΡΠ°ΡΡΠΎ misunderstood ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠ°Ρ ΠΎΠ± unsatisfied forward or external declaration. ΠΡΠΎΡ ΡΠ±ΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π° ΡΡΠ°ΠΏΠ΅ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ Π΅Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π² ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊΠ° ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ±ΠΎΠ΅Π².
Π‘ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΊΡΠΎΠ΅ΡΡΡ Π² ΡΠ°ΡΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΠ΅ΠΊΡΠΈΠΈ interface, Π²Ρ ΠΎΠ±Π΅ΡΠ°Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΡΡΠΎ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½. ΠΡΠ»ΠΈ Π² ΡΠ΅ΠΊΡΠΈΠΈ implementation ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π΅Ρ, ΠΈΠ»ΠΈ ΠΎΠ½ Π½Π°ΠΏΠΈΡΠ°Π½ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊ Π²ΡΠ΄Π°Π΅Ρ ΡΡΠ΅Π²ΠΎΠ³Ρ. ΠΡΠΎ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠΎΠ³ΠΎΠ³ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ Π΅Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° ΡΠ°Π½Π½ΠΈΡ ΡΡΠ°Π΄ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΠ°Π½Π΅Ρ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΠΌ, Π±Π»ΠΎΠΊΠΈΡΡΡ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π°Π΄ Π½ΠΎΠ²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
ΠΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊΠ°
Π§ΡΠΎΠ±Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π±ΠΎΡΠΎΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ "ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ" ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Delphi ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ°ΠΏΠ°: ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΏΡΠΎΠ²Π΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , Π° Π·Π°ΡΠ΅ΠΌ Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ». ΠΠΌΠ΅Π½Π½ΠΎ Π½Π° Π²ΡΠΎΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ, ΠΈ Π²ΡΠΏΠ»ΡΠ²Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± unsatisfied forward declaration. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΅ΡΡΡ Π·Π°ΠΏΠΈΡΡ ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π°Π΄ΡΠ΅Ρ Π΅Ρ ΠΊΠΎΠ΄Π° ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ.
Π§Π°ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π·Π°Π±ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² forward. ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Ρ ΡΡΠΈΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ, Π²Ρ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΎΡΠ»ΠΎΠΆΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΊ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½Π° ΠΊ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΡΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°. Π‘ΡΡΠΎΠ³Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΈ ΠΏΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΎ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΡΠΈΠΏΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ. ΠΠ½Π° Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ², ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ . ΠΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π½ΠΎ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ (ΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ), ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ unsatisfied declaration. ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Delphi Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π²Π΅Π΄Π΅Ρ ΠΊ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠΈΡΡΠ°ΡΠΈΡΠΌ.
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΠΊΠΎΡΠΎΡΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π»ΠΎΠ³Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±Π°Π½Π°Π»ΡΠ½Π°: ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΠ±ΡΡΠ²ΠΈΠ» ΠΌΠ΅ΡΠΎΠ΄ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ, Π½ΠΎ Π·Π°Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠΈΡΡΡΡ ΠΏΡΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π΅ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠΈΠ³Π½Π°ΡΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄Π° Π±ΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°, Π° ΡΡΠ°ΡΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΎ, ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΠΈΠ΄ΠΈΡ "Π΄ΡΡΡ" Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΡΠ³ΠΎΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, ΠΈΡ
ΡΠΈΠΏΡ ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠ°ΠΊ const String, Π° Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΏΡΠΎΡΡΠΎ String, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΡΡΠΈΡΠ°Π΅Ρ ΡΡΠΎ Π΄Π²ΡΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ Π½ΠΎΠ²ΠΎΠΉ, Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ, Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½Π°Ρ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π±Π΅Π· ΡΠ΅Π»Π°. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Π½Π΅ ΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊΠΈΡ
Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΉ.
- π΄ ΠΠ°Π±ΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ: ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² interface, Π½ΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² implementation.
- π΄ ΠΠ΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡ: ΡΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΈ ΡΠ΅Π»Π΅.
- π΄ ΠΡΠΈΠ±ΠΊΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²: Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² virtual, override ΠΈΠ»ΠΈ forward.
- π΄ ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ: ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΊΡΡΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌΠΈ
{$IFDEF}, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ.
ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠΎΠΈΡ ΡΠ΄Π΅Π»ΠΈΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π§Π°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΠ°ΠΊ, ΡΡΠΎ ΠΊΠΎΠ΄ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±Π΅ΡΠ½ΡΡ Π² ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΌΠ°ΠΊΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ»Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π°, Π½ΠΎ Π΅Ρ ΠΊΠΎΠ΄ Π±ΡΠ» ΠΈΡΠΊΠ»ΡΡΠ΅Π½ ΠΈΠ· ΡΠ±ΠΎΡΠΊΠΈ, ΡΡΠΎ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ FireMonkey, Π³Π΄Π΅ ΠΊΠΎΠ΄ Π΄Π»Ρ Windows ΠΈ macOS ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅, ΡΡΠΎ Π²ΡΠ΅ Π²Π΅ΡΠ²ΠΈ ΠΊΠΎΠ΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΈΠ½Π°ΡΠ΅ ΡΠ±ΠΎΡΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠΏΠ°Π΄Π΅Ρ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Π²Π½ΠΎΡΠΈΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠ²Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅, Π²Ρ ΠΎΠ±ΡΠ·Π°Π½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°Π³Π»ΡΡΠΊΠ°. ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ abstract, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈ ΡΠ°ΠΌ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΎΠΉ ΡΠ°ΠΌΠΎΠΉ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π½ΡΠ°Π½Ρ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ override, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ virtual ΠΈΠ»ΠΈ dynamic. ΠΡΠΈΠ±ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ Π·Π°Π±ΡΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π² Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΠΈ ΠΈ, Π½Π΅ Π½Π°ΠΉΠ΄Ρ Π΅Ρ, Π²ΡΠ΄Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΠΌ Π²ΠΎ Π²ΡΠ΅Ρ
Π·Π²Π΅Π½ΡΡΡ
ΡΠ΅ΠΏΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΈ ΠΈΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
| ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° | Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ΅ | ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ | Π ΠΈΡΠΊ ΠΎΡΠΈΠ±ΠΊΠΈ |
|---|---|---|---|
| Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ | ΠΠ°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ | ΠΠ΅Ρ | ΠΡΡΠΎΠΊΠΈΠΉ |
| Virtual | ΠΠ°, Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ Π½Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ | ΠΠ° (Ρ abstract) | Π‘ΡΠ΅Π΄Π½ΠΈΠΉ |
| Override | ΠΠ°, Π·Π°ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ | ΠΠ΅Ρ | Π‘ΡΠ΅Π΄Π½ΠΈΠΉ |
| External | ΠΠ΅Ρ (Π² DLL) | ΠΠ΅Ρ | ΠΠΈΠ·ΠΊΠΈΠΉ (Π΅ΡΠ»ΠΈ DLL Π΅ΡΡΡ) |
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ TMyClass.MyMethod ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½. ΠΡΠ»ΠΈ Π²Ρ Π·Π°Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ΅ΡΠΈΡ, ΡΡΠΎ Π²Ρ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΎΡΡΠ°Π²ΠΈΠ² ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° Π±Π΅Π· ΡΠ΅Π»Π°. ΠΡΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ Π»Π΅Π³ΠΊΠΎ Π»Π΅ΡΠΈΡΡΡ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΊ Π΄Π΅ΡΠ°Π»ΡΠΌ.
ΠΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ DLL β Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΎΠ±Π»Π°ΡΡΡ, Π³Π΄Π΅ ΡΠ°ΡΡΠΎ Π²ΡΠΏΠ»ΡΠ²Π°Π΅Ρ unsatisfied forward declaration. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ external, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΡΠΊΡΠΏΠΎΡΡΠ° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ. ΠΡΠ»ΠΈ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² DLL ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·-Π·Π° Π΄Π΅ΠΊΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ Π² C++), Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ». ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΎΡΠ½ΠΎΡΡΠΈ Π² ΠΈΠΌΠ΅Π½Π°Ρ
.
Π§Π°ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΡΠΎΠ΅ΡΡΡ Π² ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ»ΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΌΠ° DLL Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΡΠΆΠ½ΠΎΠΉ ΡΠΊΡΠΏΠΎΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΎΡΠΈΠ±ΠΊΠΈ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π½ΠΎ ΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ ΠΈΠΌΠΏΠΎΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ (.lib ΠΈΠ»ΠΈ.a) Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ±ΠΎΡΠΊΠΈ, ΠΎΠ½ ΡΡΠ°Π·Ρ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠ΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π΅. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° Π±ΠΎΠ»Π΅Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Π° ΠΊ Π½Π°Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
- π΅ ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΠ΅Π³ΠΈΡΡΡ Π±ΡΠΊΠ² ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅).
- π΅ Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΡΡΡ ΠΊ DLL ΡΠΊΠ°Π·Π°Π½ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² PATH.
- π΅ ΠΠ»Ρ C++ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ
nameΠ΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΊΡΠΏΠΎΡΡΠ°.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ 64-Π±ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ. ΠΠΎΠΏΡΡΠΊΠ° Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ 32-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² 64-Π±ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ ΠΏΡΠΈΠ½ΡΡΡ Π·Π° missing declaration, Ρ ΠΎΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΎΡΠΌΠ°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π΄ΠΈΠΊΡΡΠ΅Ρ ΡΠ²ΠΎΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
ΠΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²
Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ ΡΠ°ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΠΈΠ»ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌΠΈ {$IFDEF}, {$IFNDEF} ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠΌ, Π½ΠΎ ΠΎΠ½ ΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΈΠΏΠ° unsatisfied forward. ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π±Π΅Π· ΡΡΠ»ΠΎΠ²ΠΈΠΉ, Π½ΠΎ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±Π΅ΡΠ½ΡΠ»ΠΈ Π² ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΌΠ°ΠΊΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π±Π΅Π· ΡΠ΅Π»Π°. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΎΡΡΠΎ "Π²ΡΡΠ΅ΠΆΠ΅Ρ" ΠΊΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΡΡΠΈΡΠ°Ρ Π΅Π³ΠΎ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Windows. ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΠ΄ Linux ΠΈΠ»ΠΈ macOS Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π·Π°Π³Π»ΡΡΠ΅ΠΊ (dummy implementations) Π΄Π»Ρ unsupported ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΠ°ΠΌΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠΎΠ΄Π°.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ Π² ΠΎΠΏΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Project Options β Delphi Compiler β Conditional defines), ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΠ±ΠΎΡΠΊΡ.
βοΈ ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠΉ ΠΊΠ°ΠΌΠ΅Π½Ρ β ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π² ΡΠ°Π·Π½ΡΡ
ΠΌΠΎΠ΄ΡΠ»ΡΡ
. ΠΡΠ»ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ½ΠΈΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΈΠΌΠ²ΠΎΠ» DEBUG_MODE, Π° Π² Π΄ΡΡΠ³ΠΎΠΌ Π½Π΅Ρ, ΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π·Π°Π²ΠΈΡΡΡΠ°Ρ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ±ΡΠ°Π½Π° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΈ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π° Π² Π΄ΡΡΠ³ΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ°ΡΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½Π° Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΠ΅ΡΠΎΠ΄Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΠ±ΡΡΠ½ΠΎ IDE ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΡΠΎΠΊΡ Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΠΈΡΠΊ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΡΠ½ΡΡΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ (Ctrl+Shift+F) Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ ΠΈΠΌΠ΅Π½ΠΈ problematic ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ, Π³Π΄Π΅ ΠΎΠ½Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΠΈ Π³Π΄Π΅ (Π½Π΅) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π΅Π½Π°. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΠΈΡΠΊΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΡΡ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΡ.
ΠΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΏΡΠΈΠ΅ΠΌΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠ΅ΠΉ ΠΊΠΎΠ΄Π°. ΠΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² uses. ΠΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΡΡΠ΅Π·Π»Π°, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΡΠ½ΠΎ Π² ΡΡΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ΅Π»ΠΎ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠ΅ΡΠΎΠ΄ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΎ Π»ΠΎΠ³Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ (Verbose linking) Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ , ΡΡΠΎΠ±Ρ Π²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΈ Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊ ΡΠ΅ΡΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ». ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΠ»ΠΈ Ρ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. ΠΠ΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π»ΠΎΠ³ΠΎΠ² ΡΠ°ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ»ΡΡ ΠΊ ΡΠ°Π·Π³Π°Π΄ΠΊΠ΅.
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ
Π§ΡΠΎΠ±Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠ°Π²ΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π²ΡΠ΅Π³Π΄Π° ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ . ΠΠ΅ ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°ΠΉΡΠ΅ Π½Π° ΠΏΠΎΡΠΎΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π» ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ IDE Π΄Π»Ρ Π°Π²ΡΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°: ΠΊΠ»ΠΈΠΊ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈ Π²ΡΠ±ΠΎΡ "Implement Interface" ΡΠΎΠ·Π΄Π°ΡΡ Π·Π°Π³Π»ΡΡΠΊΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΠΈΡΠΊ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΠΈ ΡΠ΄Π°Π»ΡΠΉΡΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄. ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ΅Π½, ΡΠ΄Π°Π»ΡΠΉΡΠ΅ Π΅Π³ΠΎ ΠΈ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΈ ΠΈΠ· ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ "Π²ΠΈΡΡΡΠΈΠ΅" ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ β ΠΏΡΡΠΌΠΎΠΉ ΠΏΡΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΠΈΡΡ ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ Π±Π΅Π· ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΅ΡΠ΅ Π΄ΠΎ ΡΡΠ°ΠΏΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠΎΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΅ΠΌΡ.
- π’ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°Π²ΡΠΎ-Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ IDE.
- π’ Π‘ΡΠ°Π·Ρ ΡΠ΄Π°Π»ΡΠΉΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ.
- π’ ΠΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΈΠΏΠΎΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
- π’ Π’Π΅ΡΡΠΈΡΡΠΉΡΠ΅ ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ (Debug/Release, 32/64 bit).
Π‘ΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² ΡΠΈΡΡΠΎΡΠ΅ ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΡΡ frustrating ΠΎΡΠΈΠ±ΠΎΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Delphi β ΡΡΡΠΎΠ³ΠΈΠΉ, Π½ΠΎ ΡΠ΅ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π΅ΡΡΡΠΊΠΎΠ²ΠΊΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅. ΠΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π° ΠΊΠΎΠ΄Π° β Π·Π°Π»ΠΎΠ³ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅ΡΡΡ, Π½ΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΡΡΠ°Π΅ΡΡΡ?
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, Π½Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ, ΠΈΠ»ΠΈ Π½Π΅ ΡΠΊΡΡΡΠ° Π»ΠΈ ΠΎΠ½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ°ΠΉΠ» Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ.
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° Π²ΠΈΡΡΡΠΎΠΌ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅?
ΠΡΠ°ΠΉΠ½Π΅ ΡΠ΅Π΄ΠΊΠΎ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° Π² ΠΊΠΎΠ΄Π΅. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π°Π½ΡΠΈΠ²ΠΈΡΡΡ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΊ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈΠ»ΠΈ DLL, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ.
ΠΠ°ΠΊ Π±ΡΡΡΡΠΎ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±Π΅Π· ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΠ΅ΡΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ declared but not implemented ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².