Π₯ΠΎΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ C# ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ RCW, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ , ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΡΠΈΠΌ, Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°Ρ .
ΠΠ΅ΡΠ²ΡΠΉ: ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΠ°ΡΠ½ΡΠΌ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π½Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° COM, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ COM ΠΌΠ΅ΡΠΎΠ΄Ρ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ. ΠΡΠΈ ΠΏΠΎΠ·Π΄Π½Π΅ΠΌ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠΈ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠ΅ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° InvokeMember(), ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠΎΠ΄ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠΎΡΠΎΠΉ: ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ InvokeMember() Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅ ΡΡΠ΅Π΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°ΠΉΡΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΠ»Π΅Π½ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΊΠ»Π°ΡΡΠ° COM. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π’ΡΠ΅ΡΠΈΠΉ: Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠ·Π΄Π½ΠΈΠΌ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° COM, IDE VS.NET Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Intellisense, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ»Π΅Π½ΠΎΠ² ΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΄Π½ΠΎ Π½Π°ΠΉΡΠΈ Π΄ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ActiveX Π² .NET
ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ActiveX ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° COM, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π’Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ COM Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .NET, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ActiveX. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΠ° AxImp.exe.
AxImp.exe
Π§ΡΠΎΠ±Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ActiveX Π² ΡΡΠ΅Π΄Ρ .NET, ΡΡΠΈΠ»ΠΈΡΠ° AxImp.exe Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ:
1. ΠΠΌΠ΅Π½ΠΈ AxImp.
2. ΠΠ±ΡΠΎΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Ρ ActiveX (*.ΠΎΡΡ ), ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π°, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅. ΠΠ΄Π΅ΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ActiveX Win32 MAPI ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° .ΠΎΡΡ (C:\windows\system\msmapi32.ΠΎΡΡ ):
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° AxImp.exe Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΄Π²Π° ΡΠ°ΠΉΠ»Π°.
ΠΠ΅ΡΠ²ΡΠΉ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» MSMAPI.dll ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΊΡΠΈ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ActiveX, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΡΡΠΎ Π±ΡΠ» Π½Π΅Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΎΡΠΎΠΉ ΡΠ°ΠΉΠ» AxMSMAPI.dll ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Windows. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°ΡΠΏΠ΅ΠΊΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ActiveX ΠΊΠ°ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Windows Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Forms Windows .NET.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ AxImp ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΡΠΈΡ Π΄Π²ΡΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ²Π½ΡΠ΅ ΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π² Π±Π΅ΡΠ°-Π²Π΅ΡΡΠΈΠΈ SDK .NET AxImp.exe ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±Π΅Π· ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΎΠΊΡΠΈ ActiveX
ΠΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, Π²ΡΠ²ΠΎΠ΄ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠΊΡΠΈ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ AxImp.exe ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ActiveX ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΏΡΠΎΠΊΡΠΈ ΡΠ±ΠΎΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Reference Π² IDE VS.NET ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ AxImp.exe ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ:
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΎΠΊΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ActiveX. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΊΡΠΈ MSMAPI32.ΠΎΡΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ:
public static int Main() {
MAPISession objSession=new MAPISession();
MAPIMessages objMessage=new MAPIMessages();
objSession.Password="password";
objSession.UserName=" [email protected]";
objSession.SignOn();
objMessage.SessionID=objSession.SessionID;
objMessage.Compose();
objMessage.MsgSubject="MAPI Contol Test";
objMessage.MsgNoteText="The message body.";
objMessage.RecipAddress=" [email protected]";
objMessage.ResolveName();
objMessage.Send(null);
objSession.SignOff();
return 0;
}
Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ActiveX Π² WinForm
Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ActiveX Π² ΡΠΎΡΠΌΠ΅ Windows. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΡΠ½Π°ΡΠ°Π»Π° Π·Π°ΠΏΡΡΡΠΈΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Customize Toolbox ΠΈΠ· IDE VS.NET, ΡΠ΅Π»ΠΊΠ½ΡΠ² ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π² ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² IDE ΠΈ Π²ΡΠ±ΡΠ°Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠ½ΠΊΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΌ ΠΌΠ΅Π½Ρ. ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²ΠΈΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ .NET Framework Components ΠΈ Π½Π°ΠΉΡΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ AxImp.exe ΡΠ°ΠΉΠ» ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Windows. ΠΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΡΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Customize Toolbox ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π² ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ IDE ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² Windows Form ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Windows.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² .NET Π² COM
Π’Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ COM ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ActiveX Π² ΠΊΠΎΠ΄Π΅ .NET, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ .NET Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Windows. Π’ΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠ±ΠΎΡΠΎΠΊ .NET Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅ΡΠ΅Π· COM, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ .NET ΠΈΠ· COM ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
RegAsm.exe
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² COM Π² ΠΊΠΎΠ΄Π΅ .NET ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² SDK .NET, ΡΠ²Π»ΡΡΡΠ΅ΠΉΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΠ°Π½Π΅Π΅. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ β RegAsm.exe.
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ RegAsm (Register Assembly) ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²Π²ΠΎΠ΄ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΈΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° .NET Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ΅Π΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ»ΡΠΆΠ±Ρ COM ΠΌΠΎΠ³Π»ΠΈ ΠΊ Π½Π΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° .NET Ρ ΠΏΠΎΠΌΠΎΡΡΡ RegAsm, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Windows ΠΌΠΎΠ³ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΡΠΎΡΠ΅ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΄Π΅Π»Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π²ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ COM ΠΌΠΎΠ³ΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄. ΠΠ½ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊΠ»Π°ΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² .NET. Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π» ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°:
namespace Factorial {
using System;
public class Factorial {
// ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π» ΡΠΈΡΠ»Π°
public int ComputeFactorial(int n) {
int intFactorial=n;
for (int i = 1; i<n; i++) {
intFactorial*=i;
}
return intFactorial;
}
}
}
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π² ΡΠ±ΠΎΡΠΊΡ .NET ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΡΠ±ΠΎΡΠΊΡ Π² ΡΠ»ΡΠΆΠ±Π°Ρ COM Ρ ΠΏΠΎΠΌΠΎΡΡΡ RegAsm.exe:
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ±ΠΎΡΠΊΠ° Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π° Π² ΡΠ»ΡΠΆΠ±Π°Ρ COM Ρ ΠΏΠΎΠΌΠΎΡΡΡ RegAsm, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΡΠΎ ΡΠ±ΠΎΡΠΊΠΎΠΉ .NET ΡΠ΅ΡΠ΅Π· ΡΠ»ΡΠΆΠ±Ρ COM. Π‘ ΡΠ΅Π»ΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ VB, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ. (Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ VB ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Notepad; Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .vbs. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Windows Script Host ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΡΠ°ΠΉΠ» ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΉ VB Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² COM.)
Option Explicit
Dim objFactorial
Dim lngResult
Dim lngInputValue
Set objFactorial=CreateObject("Factorial.Factorial")
lngInputValue=InputBox("Numbers?")
IngResult=objFactorial.ComputeFactorial(CLng(lngInputValue))
Call MsgBox(lngResult)
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ±ΠΎΡΠΊΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠ΅ ΠΈΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sn -k Factorial.dll
ΠΠ°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» AssemblyInfo.cs ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
using System.Reflection;
[assembly: AssemblyKeyFile("factorial.snk")]
ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ Π½Π°Π΄ΠΎ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Ρ:
CSC /t:module /out: AssemblyInfo.dll AssemblyInfo.cs
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» Factorial.cs, ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ DLL ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ gacutil ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
csc /t:library /addmodule:assemblyinfΠΎ.dll Factorial.cs gacutil /i Factorial.dll
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΉ VB Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ»ΡΠΆΠ±Π°ΠΌΠΈ COM Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° .NET, Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ Π½Π° ΡΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΈ Π²ΡΠ²Π΅Π΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° .NET Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠ½Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ:
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ°, Π½Π΅ ΠΏΡΠ°Π²Π΄Π° Π»ΠΈ? ΠΠΎ ΠΎΠ½Π° Π½Π΅ ΡΠ΅ΡΠ°Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ Π²ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠ·Π΄Π½ΠΈΠΌ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ΠΌ. Π ΡΡΠ°ΡΡΡΡ, Π΄ΡΡΠ³ΠΎΠΉ ΡΠ»Π΅Π½ Π½Π°Π±ΠΎΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² SDK .NET ΠΌΠΎΠΆΠ΅Ρ Π² ΡΡΠΎΠΌ ΠΏΠΎΠΌΠΎΡΡ. ΠΡΠΎ ΡΡΠΈΠ»ΠΈΡΠ° TlbExp.exe.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΡΠ°ΡΡΡΡ Ρ TlbImp.exe, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎΠ΄Π½Ρ Π²Π΅ΡΡ: ΡΠ»ΡΠΆΠ±Ρ COM Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ±ΠΎΡΠΊΠΈ .NET, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ±ΠΎΡΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΠ»ΠΈ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ.
TlbExp.exe
TlbExp ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Type Library Exporter (ΡΠΊΡΠΏΠΎΡΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΈΠΏΠΎΠ²). ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π° ΡΠ°ΠΉΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ .NET TlbExp ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΡΡΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΈΠΏΠΎΠ² COM (*.tlb). ΠΠΎΠ³Π΄Π° TlbExp ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° .NET, ΡΠ·ΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ .NET, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ VB6, ΡΠΌΠΎΠ³ΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π½Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ .NET: