Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Ρ dll Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ dll
Π ΡΡΠΎ ΡΡΠ°ΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°ΠΉΠ»Ρ dll, Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠΎΠΎΠ±ΡΠ΅ dll ΡΠ°ΠΉΠ»Ρ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Windows.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°ΠΉΠ»Ρ dll
Π€Π°ΠΉΠ»Ρ dll β ΡΡΠΎ ΡΠ°ΠΉΠ»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (dynamic-link library). Π€Π°ΠΉΠ»Ρ dll ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡ ΡΠ°Π±ΠΎΡΡ. Π ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΎ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ dll ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ ΡΡΠ°Π·Ρ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅Ρ: Π² ΠΏΠ°ΠΏΠΊΠ΅ Β«System32Β», ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ ΠΏΡΡΠΈ C:\\Windows\\System32 ΠΠ‘ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΉΠ» Β«Comdlg32Β». ΠΡΠΎΡ ΡΠ°ΠΉΠ» Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½. Π’ΠΎ Π΅ΡΡΡ, ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» Β«Comdlg32.dllΒ» ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Dll ΡΠ°ΠΉΠ»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΡΡ ΠΌΠ΅ΡΡΠΎ Π½Π° Π²ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±Π΅Π· ΠΏΡΡΠΌΠΎΠΉ Π½ΡΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ.
Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ Windows ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈ dll ΡΠ°ΠΉΠ»ΠΎΠ² Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ. Π Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«.ocxΒ», Β«.cplΒ» ΠΈΠ»ΠΈ Β«.drvΒ».
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ dll ΡΠ°ΠΉΠ»ΠΎΠ²
Dll ΡΠ°ΠΉΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌ exe ΡΠ°ΠΉΠ»Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π°, Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² dll ΡΠ°ΠΉΠ»Ρ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ°Π·Ρ Π±ΡΡΡΡΠ΅Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ dll ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ, ΠΎΠ½ΠΈ Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ½ΠΈ Π½Π΅ ΡΡΠ°ΡΡΡ Π»ΠΈΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ. ΠΠ»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π»ΠΈΡΡ Π² ΠΎΠ΄ΠΈΠ½ dll ΡΠ°ΠΉΠ», ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ.
Π€Π°ΠΉΠ» ΡΠΎΡΠΌΠ°ΡΠ° DLL: ΡΠ΅ΠΌ ΠΎΡΠΊΡΡΡΡ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΌΠ°ΡΡΠΈΠ²Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠ»Π°ΡΡΡ.
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΌΠ°ΡΡΠΈΠ²Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠ»Π°ΡΡΡ, ΡΠ΅ΡΠ²ΠΈΡΡ, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠΈ ΠΠ Π½Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΊΠΎΠ΄, Π° ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠΎΡΡΠ°Π²Π½ΡΡ ΡΠ°ΡΡΡΡ . Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΠΊΡΡΡΡ DLL ΡΠ°ΠΉΠ» ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Windows Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ.
Π€Π°ΠΉΠ»Ρ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ DLL β ΡΡΠΎ ΡΡΠΎ ΠΈ Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Ρ
Π€Π°ΠΉΠ»Ρ DLL β ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π£ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΡΡΠ°Π²Π΅ Π²ΡΠ΅Ρ Π½ΡΠΆΠ½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ , Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² ΠΠ‘. ΠΠ° ΡΡΠ΅Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ β ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ DLL.
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° (ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°) Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½Π°, ΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΠ.
ΠΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ DLL ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΠΠ‘ Windows. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΈ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π°Π½ΡΠ° ΡΠ°Π±ΠΎΡΡ.
ΠΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π² ΡΡΠ΄Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΡΠΏΠΈΠΊΠΎΠ²Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Β«DLL hellΒ». Π’Π°ΠΊΠΎΠ΅ ΡΠ»ΡΡΠ°Π»ΠΎΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ΅Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π·Π½ΡΠΌ (ΠΈ Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ) Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Windows Π½Π°ΡΠΈΠ½Π°Π»Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ.
Π’ΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ ΠΠ‘ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°ΡΡΠΈΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠ±ΠΎΠ΅Π² β ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Side-by-side assembly, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΡΡΠ°Π»ΠΈ Π² XP, Π½ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ½ ΡΡΠ°Π» ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² Windows Vista.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΠ‘ Windows β ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠΉ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΡΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΡΠ΅, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ»Ρ ΠΎΡΠΊΡΡΡΠΈΡ DLL ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ. Π ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ DLL ΠΊ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΠ Microsoft.
Π Windows 10
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² Π΄Π΅ΡΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Windows, Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π·Π½Π°ΡΡ, ΡΠ΅ΠΌ ΠΎΡΠΊΡΡΡΡ DLL. ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π»ΠΈΠ±ΠΎ Visual Studio, Π»ΠΈΠ±ΠΎ VisualFoxPro. ΠΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ°Π»Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft. ΠΠ»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ResourceHacker β ΡΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ².
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π°ΠΆΠ°ΡΡ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ:
ΠΠ· ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ResHacker:
Π Windows 7
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° β ΡΠ΅ΠΌ ΠΎΡΠΊΡΡΡΡ DLL Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Windows 7 ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ 10 Π²Π΅ΡΡΠΈΠΈ. ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° Resource Tuner β ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠ½Π° Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ΄ Π² DLL Π½Π° ΡΠ²ΠΎΠ΅ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ
ΠΡΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ ΡΠ°ΠΉΡΠ°. Π DLL ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΊΡΠΈΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΡΠΊΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΡ:
ΠΠ°ΠΊ ΠΎΡΠΊΡΡΡΡ DLL, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Visual Studio
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΡΠ΅Π΄Π° Visual Studio Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ DLL ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ DLL ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ DLL Π½Π΅ ΡΠ΄Π°ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΎΡΠΊΡΡΡΡ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΡΠ΅ΡΠ°Π΅ΡΡΡ Π±Π΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ Π²Π·Π»ΠΎΠΌΠ°.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ‘ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Β«ΡΠ°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Β». ΠΠ»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΡΡΠΊΠ°ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ DLL Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΠΊΠ°ΡΠ°ΡΡ. ΠΠ°ΡΠ΅ΠΌ β ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΠΏΠ°ΠΏΠΊΡ.
Π ΡΠ΅Π΄ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ DLL ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΠ‘:
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΠΎΠ³Π°
Π Π°Π±ΠΎΡΠΎΠΉ Ρ DLL Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, Π½ΠΎ ΠΎΠΏΡΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DLL
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΡΡΠ»ΠΎΠΊ (DLL) ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ DLLs. Π Π½Π΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ DLLs.
ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ: Windows 10 β Π²ΡΠ΅ Π²ΡΠΏΡΡΠΊΠΈ
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΠ: 815065
Π‘Π²ΠΎΠ΄ΠΊΠ°
Π ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DLL, Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ, Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ DLL, ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° DLL, ΡΠΊΡΠΏΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ DLL ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ DLL.
ΠΠ»Ρ Windows ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ DLL. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Windows ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° DLLs. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π² DLLs.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ DLLs ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ DLL, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ DLL, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ. ΠΡΠ»ΠΈ Π΄ΡΡΠ³Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠ΅ΡΠ΅ΠΎΠΏΠΈΡΠ°Π΅Ρ ΠΈ Π½Π°ΡΡΡΠ°Π΅Ρ ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ, ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
DLL β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Windows ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ DLL Comdlg32 Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ±ΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² ΡΡΠΎΠΌ DLL, Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. ΠΡΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ DLL ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΉ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΡ Π³Π°Π»ΡΠ΅ΡΡΠΊΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ΄Π°Π½Π° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°, Π΅ΡΠ»ΠΈ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ, Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΡΡΡΠ΅Π΅. ΠΠΎΠ΄ΡΠ»Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π»Π΅Π³ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΌΠΎΠ΄ΡΠ»Π΅, Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΡΠ°Π±ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ, ΠΈ Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΡΡΠ°Π²ΠΊΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π³ΠΎΠ΄. ΠΡΠ»ΠΈ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π² DLL, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡ Π² ΡΠ±ΠΎΡΠΊΠ΅ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ½ΠΎΠ²Π°.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ DLLs Π² Windows ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ :
ActiveX Π€Π°ΠΉΠ»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (.ocx)
ΠΡΠΈΠΌΠ΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ActiveX β ΡΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ Π΄Π°ΡΡ ΠΈΠ· ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ.
Π€Π°ΠΉΠ»Ρ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (.cpl)
Π€Π°ΠΉΠ»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° (drv)
ΠΡΠΈΠΌΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° β ΡΡΠΎ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ°ΡΡΡ Π½Π° ΠΏΡΠΈΠ½ΡΠ΅ΡΠ΅.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° DLL
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ DLL:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ²
ΠΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡ ΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΉ, DLL ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° Π΄ΠΈΡΠΊ ΠΈ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΉ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π½Π΅ΠΌ ΠΏΠ»Π°Π½Π΅, Π½ΠΎ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π° Windows ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΡΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ
DLL ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. ΠΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°.
ΠΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ
ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² DLL ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° DLL Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ DLL. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ DLL, Π²ΡΠ΅ ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π²ΡΠ³ΠΎΠ΄Ρ ΠΎΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠ°ΡΠ΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΡΠΎΠ½Π½Π΅Π΅ DLL, ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ.
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ DLL
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ»ΠΈ DLL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ DLL Π² Π΄ΡΡΠ³ΠΎΠΉ DLL, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΉ, ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ»ΠΎΠΌΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Ρ Π½Π΅Π΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
ΠΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌΠΈ DLL. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² Windows 2000 Π³. ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ Windows ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΡΡΠΎΠ±Ρ ΡΠ²Π΅ΡΡΠΈ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ:
Windows ΠΠ°ΡΠΈΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²
Π Windows Π·Π°ΡΠΈΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ DLLs Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π°Π³Π΅Π½ΡΠΎΠΌ. ΠΠΎΠ³Π΄Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ DLL, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ° DLL, Windows ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π·Π°ΡΠΈΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ.
Π‘ΡΠ΅Π΄ΡΡΠ²Π° ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ DLL
ΠΠ»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ DLL Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π΄ΡΡΠ². ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ΅Π΄ΡΡΠ².
Π£ΠΎΠΊΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
Π‘ΡΠ΅Π΄ΡΡΠ²ΠΎ Π£ΠΎΠΊΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ DLLs, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΡΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π² «Π£ΠΎΠ»ΠΊΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ» ΡΠΎΠ»ΠΊΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ:
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π£ΠΎΠ»ΠΊΠ΅ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ DLLs, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΈ ΡΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ DLL, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Visual Studio 6.0 ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Dependency Walker.
drive\Program Files\Microsoft Visual Studio\Common\Tools
Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ DLL
Π‘ΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ DLL (DUPS) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π°ΡΠ΄ΠΈΡΠ°, ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ DLL. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ DUPS:
ΠΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ DLLs Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ DLLs, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π² Π΄Π²ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»Π°Ρ , ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΠ΅ΡΠΈΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ°Π·Π»ΠΈΡΠΈΡ.
ΠΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Dlister.exe ΠΈ Dcomp.exe Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ dllHell.
ΠΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (GUI) Π²Π΅ΡΡΠΈΠΈ Dtxt2DB.exe ΡΡΠΈΠ»ΠΈΡΡ.
ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠΏΡΠ°Π²ΠΊΠΈ DLL
ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΎ DLL ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ DLLs, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° DLL
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ DLLs.
Π’ΠΈΠΏΡ DLLs
ΠΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ DLL Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡ DLL. ΠΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ β Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ²ΡΠ·Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ
Π Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΡΠ²Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π΄Π»Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ DLL-ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΡΡΡΠ»ΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΠΆΠ΅ΡΠ΅ ΡΠ°ΠΉΠ» (.h) ΠΈ ΡΠ°ΠΉΠ» ΠΈΠΌΠΏΠΎΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (.lib). ΠΡΠΈ ΡΡΠΎΠΌ linker ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ DLL ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΎΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ DLL Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
ΠΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ LoadLibrary LoadLibraryEx DLL Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°. ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ DLL Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ GetProcAddress DLL, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·Π²Π°ΡΡ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠΌΠΏΠΎΡΡΠ°.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠ»ΠΈ Π²Π°ΠΆΠ½Π° Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ ΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ²ΡΠ·ΡΡ Ρ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΡΠΊΡΠΏΠΎΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ DLL ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π²ΡΠ·ΠΎΠ² ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ²Ρ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ·ΡΡΠ½ΡΡ Π²Π΅ΡΡΠΈΠΉ.
Π’ΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Π² DLL
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ DLL ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π°. Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΠΊ DLL ΠΈΠ»ΠΈ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΠΎΡ DLL. Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ ΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ DLL. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² (TLS) Π΄Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΊΡΡΡΠΎΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π°. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° DLL.
ΠΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ FALSE, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΏΡΡΠΊΠ°, Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ DLL Π½Π΅ Π±ΡΠ΄Π΅Ρ.
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ·ΡΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ»ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ DLL. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΡΠΌΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ LoadLibrary ΠΈΠ»ΠΈ LoadLibraryEx ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ FreeLibrary ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
Π ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ DLL ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ (Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ), ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ TLS Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠΊΡΠΏΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ DLL
Π§ΡΠΎΠ±Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ DLL, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡ DLL ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ (.def), Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΠΊΡΠΏΠΎΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ DLL.
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ:
__declspec(dllexport)
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ DLL Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ: __declspec(dllimport)
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» Π·Π°Π³ΠΎΠ½Π°, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ifdef import Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠ΅.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΡΠΏΠΎΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ DLL. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ DLL. Π ΡΠ°ΠΉΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ LIBRARY EXPORTS ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ DLL. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ β ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ DLL ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π Visual C++ 6.0 ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ DLL, Π²ΡΠ±ΡΠ°Π² ΡΠΈΠΏ ΠΏΡΠΎΠ΅ΠΊΡΠ° Win32 Dynamic-Link Library ΠΈΠ»ΠΈ ΡΠΈΠΏ MFC AppWizard (dll).
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ β ΠΏΡΠΈΠΌΠ΅Ρ DLL, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² Visual C++ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΏΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Win32 Dynamic-Link Library.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ β ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Win32, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡ DLL Π² DLL SampleDLL.
ΠΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²ΡΠ·Π°ΡΡ ΠΈΠΌΠΏΠΎΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ SampleDLL.lib, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° SampleDLL.
ΠΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ, Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° SampleDLL.dll ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ DLL.
ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΡΡΡΠ»ΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ SampleDLL ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ Windows ΠΈΡΠ΅Ρ DLL SampleDLL Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
ΠΠ°ΠΏΠΊΠ° Windows ΡΠΈΡΡΠ΅ΠΌΡ
Π€ΡΠ½ΠΊΡΠΈΡ GetSystemDirectory Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Windows ΡΠΈΡΡΠ΅ΠΌΡ.
Π€ΡΠ½ΠΊΡΠΈΡ GetWindowsDirectory Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΡΡ Windows ΠΏΠ°ΠΏΠΊΠΈ.
Π€Π°ΠΉΠ» ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΠ°, ΠΊΠΎΠ΄ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Microsoft (MSIL) ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ. ΠΠ°Π½ΠΈΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ. Π ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ:
ΠΠΎΠ΄ MSIL, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉΡΡ Π² ΡΠ±ΠΎΡΠΊΠ΅, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° MSIL ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CLR. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ±ΠΎΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΊΡΡΡΠΎΠΉ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΉ ΡΠ±ΠΎΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΡΠ±ΠΎΡΠΊΠ΅ ΡΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠ±ΠΎΡΠΊΡ Π² ΠΊΡΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ DLLs Win32:
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π²ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ clR Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°Π½ΠΈΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠ±ΠΎΡΠΎΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, CLR ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ±ΠΎΡΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π DLL Win32 Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°Π±ΠΎΡΠΎΠΌ DLLs, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠΈΡ DLLs.
Π ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π²Π΅ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ clR. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π²Π΅ΡΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. Π DLL Win32 Π²Π΅ΡΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ DLLs ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ.
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ
Π‘Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ. ΠΠ΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½Ρ Π²Π΅ΡΡΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ, Π° Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Windows 2000 Π³. ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ DLLs Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Windows Π·Π°ΡΠΈΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ DLLs Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π°Π³Π΅Π½ΡΠΎΠΌ.
Π‘Π°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΌ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ Π½ΡΠ»Π΅Π²ΡΠΌ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ.
Π‘Π±ΠΎΡΠΊΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡΡΡ clR.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DLL ΡΠ°ΠΉΠ»Ρ ΠΈ Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ?
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DLL ΡΠ°ΠΉΠ»Ρ, ΠΈ Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ? ΠΠ±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΠ° DLL β ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡΒ». ΠΠ½Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, Π²ΠΎ Π²ΡΠ΅Ρ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
Windows, ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ»ΠΈ ΠΈΠ³ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ. Π Π½Π΅ΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ², Π½Π°Π±ΠΎΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΠΈΠ³Ρ ΠΈΠΌΠ΅ΡΡ Π² ΡΠ²ΠΎΠΈΡ
ΠΏΠ°ΠΏΠΊΠ°Ρ
ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ DLL ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΡΠ»ΠΈ Π²ΠΊΡΠ°ΡΡΠ΅: ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DLL ΡΠ°ΠΉΠ»Ρ? β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π° Π½ΡΠΆΠ½Π° ΠΎΠ½Π° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠ³Ρ. ΠΠΎΠΌΠΏΡΡΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠΈΠ»ΡΡ, ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡΠΏΡΠ°Π²Π½ΠΎ. ΠΡ Π΅ΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ ΠΈ Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π»ΠΈ, Π° ΡΠΆΠ΅ Π΄Π΅ΡΡΡΠΊΠΈ DLL ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ. ΠΡΠΎΡΡΡΠ΅ ΡΠ°ΡΡ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π½Π°ΡΠ°Π»ΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π°ΡΠ΅ΠΌΡ Π²Π²ΠΎΠ΄Ρ, Π½ΡΠΆΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π°ΠΆΠ°ΡΠ°Ρ Π²Π°ΠΌΠΈ ΠΊΠ»Π°Π²ΠΈΡΠ°,β Π² ΡΡΠΎΠΌ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ DLL. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ: ΠΏΡΠΈΠ½ΡΠ΅ΡΠΎΠΌ, ΠΌΡΡΡΡ, ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ, ΡΠ»Π΅Ρ-ΠΊΠ°ΡΡΠΎΠΉ. ΠΠΌΠ΅Π½Π½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° DLL ΡΠ°ΠΉΠ»ΠΎΠ² Β«ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΒ» ΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Π Π°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
ΠΠ°ΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π½Π΅Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΠΊΠ°Π·Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΈΠ³ΡΡ ΠΏΡΡΠΈΠ»Π΅ΡΠ½Π΅ΠΉ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π΄Π°Π²Π½ΠΎΡΡΠΈ, ΠΎΠ½ΠΈ Ρ Π²Π°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΠ°Π»Π΅Π΅ Π²Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΡ ΡΠ°ΡΡΡ ΠΈΠ³ΡΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π³ΠΎΠ΄Π°. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Ρ Π²Π°Ρ Π½Π΅ Π·Π°ΠΏΡΡΡΠΈΡΡΡΡ. Π‘ΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΎΡΠΈΠ±ΠΊΠ° DLL, ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΉΠ». ΠΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΉΠ»Ρ Π½Π΅ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΈΠ»ΠΈ Π²ΠΎΠ²ΡΠ΅ Π΅Π³ΠΎ Π½Π΅Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. Π‘Π²ΡΠ·Π°Π½ΠΎ ΡΡΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΠΈΠ³ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ, ΠΌΠΎΠ³ΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΈΠ³ΡΡ, Π½ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π²Π΅ΡΡΠΈΡ ΠΠ‘ ΡΠΊΠ°Π·Π°Π»ΠΈ Π½Π΅Π²Π΅ΡΠ½ΠΎ.
Π£ Π½Π°Ρ Π½Π° ΡΠ°ΠΉΡΠ΅, ΠΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ DLL, ΡΠ°ΠΊ ΠΈ Π²Π΅ΡΡ ΠΏΠ°ΠΊΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅. ΠΠ°ΠΉΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠΈΡΠΊ, Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π±ΡΠΊΠ²Π΅ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΌΠ΅Π½Ρ. ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ DLL ΡΠ°ΠΉΠ» ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΈΡΠ΅ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ°ΡΡΠ΅, Π³Π΄Π΅ ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
DLL & Python
ΠΠ΅Π΄Π°Π²Π½ΠΎ ΠΌΠ΅Π½Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π»Π° ΡΠ΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ DLL ΠΈΠ· Python. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΠΈΡ ΡΡΡΡΠΊΡΡΡΠ΅, Π½Π° ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΌΠ΅Π½ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΠΎΡΠ»Π΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ, ΡΡΠ°Π»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Python. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅Π»ΠΈ Π±ΡΠ»ΠΈ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΡ, Π° ΡΡΠΎΠ±Ρ ΠΎΠΏΡΡ Π½Π΅ Π±ΡΠ» Π·Π°Π±ΡΡ, Ρ ΡΠ΅ΡΠΈΠ» ΠΏΠΎΠ΄Π²Π΅ΡΡΠΈ ΠΈΡΠΎΠ³ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ°ΡΡΠΈ β ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ Π·Π½Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ, Π° Π·Π°ΠΎΠ΄Π½ΠΎ Π΅ΡΡ Π»ΡΡΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ΅.
ΠΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ Π²Π°Ρ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΡΠ°ΡΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ, ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ ΠΊ Π½ΠΈΠΌ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠ°Π΄Π΅ΡΡΡ ΠΈΠ· ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅ ΠΊΠ°ΠΊΡΡ ΡΠ°ΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΠ²ΠΎΠΈ Π²ΠΎΠΏΡΠΎΡΡ.
Π‘ΡΡΡΠΊΡΡΡΠ° DLL
Π£ΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ ΡΡΠ°ΡΡΡ Π½Π΅ ΠΎ ΡΠ°ΠΌΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ , Π»ΡΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π·Π΄Π΅ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΡ ΡΡΠ°ΡΡΡ ΠΎΡ Microsoft: Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DLL?.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π½ΡΠΆΠ½ΠΎ Π²Π½ΠΈΠΊΠ½ΡΡΡ Π² ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ.
DLL ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°Π±ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎ-ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ. Π’Π°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠΌΡ DllMain ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΡΡΡΡ ΠΊ DLL ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ ΠΎΡ Π½Π΅Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΈΡ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ.
Π ΠΈΡΡΠ½ΠΎΠΊ 1 β ΠΡΡΡΠΎΠΉ template, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ Code Blocks Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° DLL.
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 1 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ°Π±Π»ΠΎΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Code Blocks, ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΈΠΏΠ° DLL. Π ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌ ΡΠ°Π±Π»ΠΎΠ½Π΅ Π΅ΡΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
DLL_PROCESS_ATTACH β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ DLL. ΠΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ DLL Π½Π° Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π‘ ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ DllMain Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Ρ ΡΠ²Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΎΠΉ.
DLL_PROCESS_DETACH β ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ DLL ΠΎΡ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π‘ ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ DllMain Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
DLL_THREAD_ATTACH β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ²ΡΠΈΠΌ DLL, Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ°ΡΠ΅ΠΌ DLL Π·Π½Π°ΡΡ ΠΎ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠ°ΠΌ ΠΏΠΎΡΠΎΠΊΠ°Ρ ? Π Π²ΠΎΡ Π·Π°ΡΠ΅ΠΌ, Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
DLL_THREAD_DETACH β Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ²ΡΠΈΠΌ DLL. ΠΡΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΡΠ²ΠΎΠΈ «ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅» ΡΠ΅ΡΡΡΡΡ (Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ Π±ΡΡΠ΅ΡΠ°), ΡΠΎ ΡΡΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ.
ΠΠΏΡΡΡ ΠΆΠ΅, Π² ΡΠ΅ΠΌΡ ΡΡΡΡΠΊΡΡΡΡ DLL ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π΄ΠΎ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΌ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π½ΡΠ°Π½ΡΠΎΠ², ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
Π£ DllMain Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΠΌΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ fdwReason ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π²ΡΡΠ΅, ΡΠ΅ΠΏΠ΅ΡΡ ΠΎ Π΄Π²ΡΡ Π΄ΡΡΠ³ΠΈΡ :
Π ΡΠ²Π½ΠΎΠΉ ΠΈ Π½Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² ΡΡΠ°ΡΡΠ΅: Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ DLL.
Π€ΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ½Π°ΡΡΠΆΠΈ.
DLL & Python
ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ, ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΆΠ΅ ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ DLL, Π·Π°ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΠ· Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π° ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π΄ΠΎΠ΄Π΅Π»Π°Ρ ΡΠ°Π±Π»ΠΎΠ½ ΠΈΠ· Code Blocks ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ DLL.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ DLL
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ DLL, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° Python. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ΅ΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
ΠΠΎΠ΄ Python:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠΎΠ΄ Python:
ΠΠΎΠ΄ Python:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π² DLL Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΡΠΈΡΡΡ. ΠΡΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΡΡΡΠΎΠΊΠΈ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ΅.
Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Π² Π‘ ΠΈ Python
ΠΠΎΠ΄ΡΠ»Ρ ctypes ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ Π² ΡΠ·ΡΠΊΠ΅ Π‘. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ .
| Π‘types type | C type | Python type |
|---|---|---|
| c_bool | _Bool | bool (1) |
| c_char | char | 1-character string |
| c_wchar | wchar_t | 1-character unicode string |
| c_byte | char | int/long |
| c_ubyte | unsigned char | int/long |
| c_short | short | int/long |
| c_ushort | unsigned short | int/long |
| c_int | int | int/long |
| c_uint | unsigned int | int/long |
| c_long | long | int/long |
| c_ulong | unsigned long | int/long |
| c_longlong | __int64 or long long | int/long |
| c_ulonglong | unsigned __int64 or unsigned long long | int/long |
| c_float | float | float |
| c_double | double | float |
| c_longdouble | long double | float |
| c_char_p | char * (NUL terminated) | string or None |
| c_wchar_p | wchar_t * (NUL terminated) | unicode or None |
| c_void_p | void * | int/long or None |
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΡΡΠΎΠΈΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΊΡΠ΄Π° Π±Π΅Π· Π½ΠΈΡ ? ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π³Π΄Π΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΡΠΎΠΊΡ ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π΅Ρ, Π° ΠΏΠΎΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ printf() Π΄Π»Ρ Π½ΠΈΡ :
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ strcat ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΠΎΠΊΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΅ΠΉ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ.
ΠΠΎΠ΄ Python:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ° ΡΡΠΎΠΌ Π·Π°ΠΊΠΎΠ½ΡΠΈΠΌ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³ΠΎΡΠΎΠ²ΡΡ DLL. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°Π½ΠΈΡ ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ DLL ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ ctypes Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
Π‘Π²ΠΎΡ DLL ΠΈ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΈΠΌΠ΅Ρ 1
Π¨Π°Π±Π»ΠΎΠ½ DLL ΡΠΆΠ΅ Π±ΡΠ» ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π²ΡΡΠ΅, Π° ΡΠ΅ΠΉΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡΠ»ΠΎ Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ DLL ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΉ, Π²ΡΡΠΊΠΎΡΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΈ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ Π³ΡΠ°Π±Π»ΠΈ β Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ DLL ΠΈ Python. Π£ ΠΌΠ΅Π½Ρ Π½Π° ΠΠ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Python x64, ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΊΠ°ΠΊ Π±Ρ Π½Π΅ Π±ΡΠ»ΠΈ DLL ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Ρ, ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΡ DLL Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ Python. Π’ΠΎ Π΅ΡΡΡ, Π»ΠΈΠ±ΠΎ ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ x64 ΠΈ Python x64, Π»ΠΈΠ±ΠΎ ΠΈ ΡΠΎ ΠΈ ΡΠΎ x32. Π₯ΠΎΡΠΎΡΠΎ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
ΠΠΎΠ΄ DLL Π½Π° Π‘:
ΠΠΎΠ΄ Python:
Π€ΡΠ½ΠΊΡΠΈΡ SomeFunction ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΠΎΠΊΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΅Ρ Π² ΠΎΠΊΠ½ΠΎ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π ΠΈΡΡΠ½ΠΎΠΊ 2 β ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ· Code Blocks.
Π ΠΈΡΡΠ½ΠΎΠΊ 3 β ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ DLL.
ΠΡΠΈΠΌΠ΅Ρ 2
ΠΠΎΠ΄ DLL Π½Π° Π‘:
Π ΠΊΠΎΠ΄Π΅ main.h ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΡΡΠΊΡΡΡΠ° Passport Ρ ΡΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΠΌΠΈ: Π΄Π²Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ΅ΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ, ΠΊΠ°ΠΊ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅.
ΠΠΎΠ΄ DLL Π½Π° Π‘:
ΠΠ½ΡΡΡΠΈ ΠΊΠ΅ΠΉΡΠ° DLL_PROCESS_ATTACH ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ ΠΈ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ. ΠΡΡΠ΅ DllMain ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ:
GetPassport β Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΠ»Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ passport Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² Python.
ΠΠΎΠ΄ Π½Π° Python
Π ΠΊΠΎΠ΄Π΅ Π²ΡΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΎ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° Π² DLL ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ· Python Π² DLL.






