Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ°ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ, ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (DLL), Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ°Ρ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΎΠ±ΡΡΠ½ΠΎ C++ ΠΈΠ»ΠΈ C#, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΈΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
ΠΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ β ΡΡΠΎ ΠΌΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΈΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ Ρ ΠΏΠ°ΠΌΡΡΡΡ ΠΈΠ»ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ². ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ, ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΊΠ°Π½Π΅ΡΠ°ΠΌΠΈ ΡΡΡΠΈΡ -ΠΊΠΎΠ΄ΠΎΠ², ΡΠΈΡΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ°Π½ΠΊΠ°ΠΌΠΈ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΠΊΠΎΠ΄Π° 1Π‘.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, ΠΈ ΠΎ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ°ΠΌΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ C++, Π½ΠΎ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ΅ ΡΠ²ΡΠ·ΠΊΠΈ 1Π‘ ΠΈ Native API.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ DLL
Π ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ°Π±ΠΎΡΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π»Π΅ΠΆΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ COM (Component Object Model). ΠΠ»Π°ΡΡΠΎΡΠΌΠ° 1Π‘ Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΡΠΎΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ. Π‘Π°ΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΌΠΎΠ³Π»Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
ΠΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π·Π΄Π΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IComponentBase. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠ΅Π· Π½Π΅Π³ΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠΏΠΎΠΆΠ°ΡΠΈΠ΅: ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ²ΠΎΠΉΡΡΠ². ΠΡΠ»ΠΈ Π²Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, 1Π‘ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡ Π²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» DLL Π»Π΅ΠΆΠΈΡ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅.
Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ. ΠΡΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ΅Π΅ΡΡΡΠ΅ Windows ΠΈΠ»ΠΈ Linux. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» "Π½Π° Π»Π΅ΡΡ" ΠΏΡΡΠΌΠΎ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΡΡΠ΅Π΄ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ 64-Π±ΠΈΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘ Π²Π°ΡΠ° Π²Π½Π΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π° ΡΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x64. ΠΠΎΠΏΡΡΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΈΡΡ 32-Π±ΠΈΡΠ½ΡΡ DLL Π² 64-Π±ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΊΡΠΏΠΎΡΡΠ°. Π‘ΡΠ΅Π΄ΠΈ Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΡΠΈΠ±ΠΊΠ° Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ΄Π΅Π»Π°Π΅Ρ Π²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π½Π΅ΡΠ°Π±ΠΎΡΠΎΡΠΊΠΎΠΉ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘ Π΄Π»Ρ ΡΠΊΡΠΏΠΎΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π²ΡΠ·ΠΎΠ²Π°Ρ (stdcall) Π½Π° ΡΠ°Π·Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π²ΡΠ±ΠΎΡ ΡΡΠ΅ΠΊΠ°
ΠΡΠ±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π°Π·Π° 1Π‘. Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ ΠΈ ΡΠ°ΠΌΡΠΌ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ·ΡΠΊ C++ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Visual Studio ΠΈΠ»ΠΈ GCC. ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΄Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΠΈ ΡΠ°ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ C# ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ .NET. Π₯ΠΎΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΡΠ΅Π±ΡΡΡ Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² .NET ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
ΠΠ°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» comdef.h ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠΌΠΏΠΎΡΡΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ COM-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ Π² C++. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Π² Linux (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
Ρ Ubuntu ΠΈΠ»ΠΈ CentOS), ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°Ρ ΠΊΠΎΠ΄ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Windows API, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅Π΅ΡΡΡ ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΈΡΡΠΎΠΉ. Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΠΎΠ³ΠΈΠΊΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ 1Π‘ Π² ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ. ΠΡΠΎ ΡΠΏΡΠΎΡΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π±Π΅Π· Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠΆΠ΅Π»ΠΎΠΉ ΡΡΠ΅Π΄Ρ 1Π‘ ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅.
- π οΈ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ Visual Studio Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ C++ desktop development.
- π Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ ΠΏΠΎΡΡΠ°Π»Π° ΠΠ’Π‘ ΠΈΠ»ΠΈ GitHub ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° 1Π‘.
- π§ ΠΠ»Ρ Linux-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΠΊΡΠΎΡΡ-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Ρ Π½ΡΠΆΠ½ΠΎΠΉ ΠΠ‘.
- π ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ_attaching ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ rphost ΠΈΠ»ΠΈ 1cv8.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²
Π‘Π΅ΡΠ΄ΡΠ΅ΠΌ Π²Π°ΡΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°Π½Π΅Ρ ΠΊΠ»Π°ΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IComponentBase. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° GetMethodNames, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠΌΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΈΠ· ΠΊΠΎΠ΄Π° 1Π‘. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΠ°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ CallAsFunc ΠΈ CallAsProc. ΠΠ΅ΡΠ²ΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° Π²ΡΠΎΡΠΎΠΉ β ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π±Π΅Π· Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠ½ΡΡΡΠΈ ΡΡΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ°ΡΡΠΈΡΡ ΠΈΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· 1Π‘.
Π Π°Π±ΠΎΡΠ° Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΊ ΡΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½ΡΡ
. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° 1Π‘ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ tVariant. ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅: ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΡΠ΄Π°, Π³Π΄Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ.
if (paParams[0].vt == VTYPE_PSTR) {
// ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
const wchar_t* str = paParams[0].pwstrVal;
// ΠΠΎΠ³ΠΈΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ
}
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ GetPropNames, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ, Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ (GetPropVal) ΠΈ Π·Π°ΠΏΠΈΡΡ (SetPropVal). ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌΡΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
Π‘Π΅ΠΊΡΠ΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ
ΠΡΠ΅Π³Π΄Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ "ΠΡΡΡΠΎ" ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΡΡΠΎΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π² 1Π‘ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π²Π½ΡΡΡΠΈ Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ DLL ΡΠ°ΠΉΠ» Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΡΠΈ: ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. Π‘ΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠ°Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ΅Π΅ΡΡΡ Windows (ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π² Linux).
ΠΠ»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π² Windows ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° regsvr32. ΠΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ. ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΡΠ΅Π΅ΡΡΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΎ ΠΊΠ»Π°ΡΡΠ΅ COM ΠΈ Π΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° 1Π‘ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎ ProgID ΠΈΠ»ΠΈ CLSID.
ΠΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π²Π½Π΅ΡΠ½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΎΠΊ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» DLL Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ²Π½ΠΎ, ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΡΠ΅Π΅ΡΡΡΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
| Π‘ΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ | Π’ΡΠ΅Π±ΡΡΡΡΡ ΠΏΡΠ°Π²Π° Π°Π΄ΠΌΠΈΠ½Π° | ΠΠΎΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΡ | Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ |
|---|---|---|---|
| Π‘ΠΈΡΡΠ΅ΠΌΠ½Π°Ρ (regsvr32) | ΠΠ° | ΠΠΈΠ·ΠΊΠ°Ρ | Π‘ΡΠ΅Π΄Π½ΡΡ |
| ΠΠΎΠΊΠ°Π»ΡΠ½Π°Ρ (ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°) | ΠΠ΅Ρ | ΠΡΡΠΎΠΊΠ°Ρ | ΠΠΈΠ·ΠΊΠ°Ρ |
| Π§Π΅ΡΠ΅Π· VPN/Π‘Π΅ΡΠ²ΠΈΡ | ΠΠ°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΠ‘ | Π‘ΡΠ΅Π΄Π½ΡΡ | ΠΡΡΠΎΠΊΠ°Ρ |
ΠΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ 1Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΠ½Π΅ΡΠ½Π΅ΠΉΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ΅Π°Π½ΡΠ΅. ΠΡΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ
Π±Π°Π· ΠΈΠ»ΠΈ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π±Π΅Π· ΠΏΡΠ°Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ (SQL Π±Π°Π·Π°) Π²Π½Π΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π³Π΄Π΅ Π·Π°ΠΏΡΡΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡ rphost, Π° Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠ»Π°Π΄ΠΊΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΠ»Π°Π΄ΠΊΠ° Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ· 1Π‘, β Π·Π°Π΄Π°ΡΠ° Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½Π°Ρ. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ 1Π‘ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΉΡΠΈ Π²Π½ΡΡΡΡ C++ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ GDB ΠΈΠ»ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Visual Studio, ΠΈ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΡΡΡΡ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ 1Π‘ Π²ΡΡΡΠ½ΡΡ.
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π² Visual Studio ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π» ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» 1cv8.exe ΠΈΠ»ΠΈ rphost.exe Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΡΠ°Π²ΠΈΡΡ Π±ΡΠ΅ΠΉΠΊΠΏΠΎΠΈΠ½ΡΡ ΠΏΡΡΠΌΠΎ Π² ΠΊΠΎΠ΄Π΅ DLL ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ.
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠ±ΠΎΠ΅ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ C++ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ ΠΈΠ»ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ null-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ) ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° 1Π‘. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ²ΠΈΠ΄ΠΈΡ ΠΎΠΊΠ½ΠΎ "1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΠ»ΠΎ ΡΠ°Π±ΠΎΡΡ".
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π±Π»ΠΎΠΊΠΈ try-catch Π²ΠΎΠΊΡΡΠ³ Π²ΡΠ΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΎΡΠΌΠΈΡΡΠΉΡΠ΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΠΉΡΠ΅ Π΅Π³ΠΎ Π² 1Π‘ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π° Π½Π΅ ΠΊΡΠ°ΡΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΡΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ.
βοΈ Π§Π΅ΠΊ-Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅Π»ΠΈΠ·ΠΎΠΌ
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π³ΠΎΡΠΎΠ²Π° ΠΊ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠΉ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ, Π²ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ Π΅Π΅ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» DLL Π² ΡΠΎΡΡΠ°Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠ°ΠΌΠ° Π²ΡΠ³ΡΡΠ·ΠΈΡ Π΅Π³ΠΎ Π² Π½ΡΠΆΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» DLL Π·Π°Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ 1Π‘, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π΅Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ. ΠΠ°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ.
ΠΠ»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΡΠΎ ΡΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π°Π³ΡΡΠ·ΠΊΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΊΡΠΎΡ.
ΠΠ΅Π΄ΠΈΡΠ΅ ΠΆΡΡΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Changelog) Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π½Π΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ½ΡΠΌ ΡΡΠΈΠΊΠΎΠΌ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² 1Π‘, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ.
ΠΠ΄Π΅Π°Π»ΡΠ½Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ β Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ DLL Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ 1Π‘ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²ΡΠ³ΡΡΠ·ΠΊΠΎΠΉ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ, ΡΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π²Π΅ΡΡΠΈΠΉ ΠΊΠΎΠ΄Π° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ 1Π‘?
ΠΠ΅Ρ, Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (DLL) ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠ»ΡΡΠΎΠΌ ΠΈ ΡΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ 1Π‘. ΠΠ΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠ»Ρ Π²Π΅Π±Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HTTP-ΡΠ΅ΡΠ²ΠΈΡΡ.
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· 1Π‘ Π²ΠΎ Π²Π½Π΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ?
ΠΠ°ΡΡΠΈΠ²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠΏΠ° tVariant Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠ½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΌΠ°ΡΡΠΈΠ², ΠΏΡΠΎΠ²Π΅ΡΡΡ ΡΠΈΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° 1Π‘ ΠΈΠ· Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΡΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΈΡΡΠΎΠ²ΡΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠΌ ΡΠ°ΠΉΠ» DLL?
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π² Windows 10/11 ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ Ρ ΡΡΠΈΠ»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΈ DLL Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠΌ. ΠΠ΅Π· ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΡΠΈΡΠ°Ρ Π΅Π΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΎΡΠ»Π°Π΄ΠΊΠ΅, Π½ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅Π»ΠΈΠ·Π΅?
Π§Π°ΡΡΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π° β ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (DLL) Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΉ ΠΈΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΏΡΡΠΈ PATH. Π ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Visual Studio ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ· ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠΈ, Π° Π² ΡΠ΅Π»ΠΈΠ·Π΅ ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Dependency Walker Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.