рдШрдЯрдХреЛрдВ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВ рдЕрдХреНрд╕рд░ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдореБрдЭреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдордЭ рдХреА рдХрдореА рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдпрд╣ рд╕рдордЭ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдШрдЯрдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЧрд▓рддрдлрд╣рдореА рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИред рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдЕрд░реНрде рдореЗрдВ рдШрдЯрдХреЛрдВ рдХрд╛ рдорддрд▓рдм рд╣реИред рдШрдЯрдХ рдЬреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдпрд╛ рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЖрд░рдкреАрд╕реА рдпрд╛ рдХреБрдЫ рдФрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдпрд╣рд╛рдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╣реБрдд рд╣рдж рддрдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг:
рдореБрдЭреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рднрд╛рдЧ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдШрдЯрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд╛рд╕ рдЬрд╛рддрд╛ рд╣реВрдВред рд╕рдВрд╡рд╛рдж рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
"рдореБрдЭреЗ рдпрд╣ рдЪреАрдЬрд╝ рдЪрд╛рд╣рд┐рдПред" рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВ?
- рд╣рд╛рдВ, рдпрд╣рд╛рдВ рдЗрд╕ рд▓реЗрдмрд▓ рдкрд░ рд╕реАрд╡реАрдПрд╕ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рднрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╕рдВрдХрд▓рд┐рддред рдЖрдкрдХреЛ рдПрдХ рдкрд░рд┐рд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдЕрдм рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдареАрдХ рд╣реИ, рдзрдиреНрдпрд╡рд╛рджред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред Campiglioред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдХреЛрдИ рднреА рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЖрдк рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕реАрд╡реАрдПрд╕ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдкрдВрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЙрдиреНрд╣реЗрдВ рднреА рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреБрдЫ рдХреЛ рд╕реНрдЯреВрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреБрдЫ рдПрдХ рдЯреИрдореНрдмреЛрд░рд┐рди рдХреЗ рд╕рд╛рде, рдЬреИрд╕реЗ рдСрдЯреЛрдХреЙрдиреНрдлрд╝, рдореЗрдХ, рдФрд░ рдЕрдиреНрдп рдЙрдирдХреЗ рдЬреИрд╕реЗ рд╣реИрдВред рд╡рд╣ рд╕рдм рд╣реИред рдпрд╣ рдПрдХрддреНрд░ рд╣реБрдПред рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред рдПрдХ, рджреВрд╕рд░реЗ, рддреАрд╕рд░реЗ рдЬреБрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВред рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк - рдЕрдиреБрддреНрдкрд╛рджрдХ рд╢реНрд░рдо рдФрд░ рдкреНрд░рдпреБрдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рддреГрддреАрдп-рдкрдХреНрд╖ рдШрдЯрдХреЛрдВ рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рд╕рдордЭ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рдЦреЛ рджрд┐рдпрд╛ рд╣реИред


рдЙрджрд╛рд╣рд░рдг рджреЛ:
"рдореБрдЭреЗ рдпрд╣ рдЪреАрдЬрд╝ рдЪрд╛рд╣рд┐рдПред" рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВ?
- рдЖрдк рджреЗрдЦрд┐рдП, рдпрд╣ рдмрд╛рдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рд╡рд░реНрдЧ, рдпрд╣ рдХреНрд▓реВрд▓реЗрд╕ рд╣реИ, рдЗрди рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд▓реЗрдВ, рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд░рдЦреЗрдВ ...
- рдЖрд╣!

рдЙрджрд╛рд╣рд░рдг рддреАрди:
"рдореБрдЭреЗ рдпрд╣ рдЪреАрдЬрд╝ рдЪрд╛рд╣рд┐рдПред" рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВ?
- рд╣рд╛рдВ, рдпрд╣рд╛рдВ рдПрдХ рд▓рд┐рдмрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рдЗрд╕рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
- рдареАрдХ рд╣реИ, рдзрдиреНрдпрд╡рд╛рджред
рдЖрдк рд▓рд┐рдм рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рд┐рдВрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдкрд░реНрдпрд╛рдкреНрдд рд╡рд░реНрдг рдирд╣реАрдВ рд╣реИрдВред рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдШрдЯрдХреЛрдВ рдХреА рдЦреЛрдЬ рдФрд░ рд╕рдВрдпреЛрдЬрди рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

рдЙрднрд░рддреА рд╣реБрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ:
1. рдПрдХрддреНрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рдХрд┐ рдШрдЯрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рднреА рдЗрд╕реЗ рдЕрднреА рднреА рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
2. рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЧрд▓рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЗрдХрдЯреНрдареЗ рд╣реБрдПред
3. рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдЧрд▓рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЗрдХрдЯреНрдареЗ рд╣реБрдПред
4. рдЧрд▓рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдЗрдХрдЯреНрдареЗ рд╣реБрдПред
5. рдЬреЛ рдореИрдВрдиреЗ рдЪрд╛рд╣рд╛ рдерд╛, рдмрд╕ рдЙрд╕реЗ рдПрдХрддреНрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдФрд░ рдЬрд┐рд╕ рдЪреАрдЬ рдХреА рдЬрд░реВрд░рдд рдереА, рд╡рд╣ рд╕рд┐рд░реНрдл рдПрдХ рдХрдХреНрд╖рд╛ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рдереА ... рд╡рд╣ рддреЗрдЬреА рд╕реЗ рд▓рд┐рдЦреА рд╣реЛрддреАред

рдмреБрд░рд╛рдИ рдХрд╣рд╛рдБ рд╕реЗ рдЖрддреА рд╣реИ

рдШрдЯрдХ - рдпрд╣ рднреА рдПрдХ рдШрдЯрдХ рд╣реИ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╡рд╕реНрддреБ рдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдореЙрдбрд▓ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░реЗрдВред рдЖрдорддреМрд░ рдкрд░, рдпрджрд┐ рдХрд┐рд╕реА рдШрдЯрдХ рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд░реНрдЪрд╛, рдбрд┐рдЬрд╛рдЗрди рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдХреЛ рдПрдХ рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдШрдЯрдХ рдореЗрдВ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг, рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг, рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рднреА рдмреБрд░рд╛рдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдЧрд▓рдд рдирд╣реАрдВ рд╕рдордЭрд╛ред рдЦреИрд░, рдореИрдВ рдпрд╣ рджреЗрдЦрдирд╛ рдФрд░ рдЕрдзреНрдпрдпрди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдХреЛрдИ рдЪреАрдЬ рд╡рд╣рд╛рдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдореБрдЭреЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрдЗрдП, рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдШрдЯрдХ рдбрд┐рдЬрд╛рдЗрди рдХреЛ рд╕рд╣реА рджреЗрдЦреЗрдВред

рдЙрджрд╛рд╣рд░рдг C ++ рдореЗрдВ рд╣реЛрдВрдЧреЗред

рдШрдЯрдХ рдХреИрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП

рдореЗрд░реА рд╡рд┐рдирдореНрд░ рд░рд╛рдп рдореЗрдВ, рдШрдЯрдХ рдХреЛ рдХрд┐рдЯ рдореЗрдВ рдПрдХ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╡рд░реНрдгрди рд╣реЛрддрд╛ рд╣реИ (рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ рдкрддреНрдерд░ рдЙрдбрд╝ рдЬрд╛рдПрдВрдЧреЗ, рдореИрдВ рдЖрдкрдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдореБрдЭреЗ dll-hell рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред рдЖрдк рдпрд╣рд╛рдВ .def рдФрд░ .lib рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд▓реЗрдХрд┐рди .dll (.so) рдФрд░ .h рдареАрдХ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдШрдЯрдХ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред рдпрд╣ рднреА рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕реНрдЯреИрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ рд╕реЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред рдпрд╣ рд╣рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рд╡рд┐рднрд┐рдиреНрди Redistributable рд╕рдВрдХреБрд▓ рдХреА рдкрд░реЗрд╢рд╛рдиреА рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛ред

рд▓реЗрдХрд┐рди рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдШрдЯрдХ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдереИрддрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШрдЯрдХреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рджреГрдврд╝рддрд╛ рд╕реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рд╕реЗ рдмрдВрдзрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдПрд╕рдЯреАрдПрд▓ рдпрд╛ рдмреВрд╕реНрдЯред
рдирддреАрдЬрддрди, рддреИрдпрд╛рд░ рдШрдЯрдХ рдХреЛ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рд▓рд╛рдЧреВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред

рдЗрдВрдЯрд░рдлреЗрд╕

рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╕рдорд╛рдзрд╛рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рд╣рдо рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд╣рдо рддреБрд░рдВрдд рдЧрддрд┐рд╢реАрд▓ рд▓реЛрдЧреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗред
рдЦрд░рд╛рдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдХрд▓реНрдк:

#include <string> #ifdef EXPORTS #define API __declspec( dllexport ) #else #define API __declspec( dllimport ) #endif class API Component { public: const std::string& GetString() const; private: std::string m_sString; }; 


рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ? рдЦреИрд░, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЫрд┐рдкрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдо рдХрдХреНрд╖рд╛ рдХреЗ рдПрдХ рд╕рджрд╕реНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╣рдо рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рдХрдВрдЯреЗрдирд░ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ std :: stringред рдпрд╛рдиреА рд╣рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЦрд░рд╛рдм рд╣реИред рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЖрдХреНрд░реЛрд╢ рдореЗрдВ рдЖрдХрд░ рдХрд╣реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдорд╛рдирдХ рдХрдВрдЯреЗрдирд░ рд╣реИ рддреЛ рд╡рд╣ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рд╣реИ? рдФрд░ рдпрд╣ рддреГрддреАрдп-рдкрдХреНрд╖ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдШрдЯрдХ Microsoft STL рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рдо STLPort рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ рд╣рдо рдХрднреА рднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рджреВрд╕рд░реА рдмрд╛рдд: рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд╣реАрдВ рд╣реИред __Declspec рдирд┐рд░реНрджреЗрд╢ рд╕рднреА рд╕рдВрдХрд▓рдХ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред рддреАрд╕рд░рд╛: рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ, рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдбрд╛рд▓рдирд╛ рд╣реИред

рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PIMPL рдореБрд╣рд╛рд╡рд░реЗ рдФрд░ рдмрд╛рд╣рд░реА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рджреВрд╕рд░реЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

 #ifdef WIN32 #ifdef EXPORTS #define API __declspec( dllexport ) #else #define API __declspec( dllimport ) #endif #else #define API #endif class ComponentImpl; class API Component { public: const char* GetString() const; private: ComponentImpl* m_pImpl; }; 


рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЫрд┐рдкрд╛ рд╣реБрдЖ рдерд╛, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдорд╛рдирдХ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдПрд╕рдЯреАрдПрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдЦреНрддреА рд╕реЗ рд╡рд┐рдирд┐рдпрдорд┐рдд рд╣реЛред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдорд┐рд╢реНрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред

рд╕реНрдкрд╖реНрдЯ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдФрд░ рдПрдХ рдлреИрдХреНрдЯреНрд░реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

 #ifdef WIN32 #ifdef EXPORTS #define API __declspec( dllexport ) #else #define API __declspec( dllimport ) #endif #else #define API #endif class Component; extern "C" API Container* GetComponent(); class Component { public: virtual ~Component() {} virtual const char* GetString() const = 0; }; 


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдПрдХрд▓ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдЬреНрдЮрд╛рдд рд╣реИ рдФрд░ рдмрджрд▓рддрд╛ рдирд╣реАрдВ рд╣реИред рдРрд╕реЗ рдШрдЯрдХ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рд▓рд┐рдВрдХ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдирд╛рдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ GetComponent рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЕрдЧрд▓рд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдШрдЯрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рднреА рдХрдИ рддрд░реАрдХреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреАред

рдЖрдк рдФрд░ рдЖрдЧреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдлрд╝реИрдХреНрдЯрд░реА рд╡рд░реНрдЧ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИ, рдЬрдмрдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдШрдЯрдХ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдмрджрд▓реЗрдЧреАред

 #ifdef WIN32 #ifdef EXPORTS #define API __declspec( dllexport ) #else #define API __declspec( dllimport ) #endif #else #define API #endif class Factory; extern "C" API Factory* GetFactory(); class Component; class Component1; class Factory { public: virtual ~Factory() {} virtual Component* GetComponent() = 0; virtual Component1* GetComponent1() = 0; }; class Component { public: virtual ~Component() {} virtual const char* GetString() const = 0; }; class Component1 { public: virtual ~Component1() {} virtual const char* GetString() const = 0; }; 


рдЦреИрд░, рдПрдХ рдПрд░реЛрдмреЗрдЯрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк COM рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рд╕реЗ рдХреБрдЫ рдЪрд╛рд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдШрдЯрдХ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЕрд╕реАрдорд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬрдмрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдирд╛ред

 #ifdef WIN32 #ifdef EXPORTS #define API __declspec( dllexport ) #else #define API __declspec( dllimport ) #endif #else #define API #endif class Factory; extern "C" API Factory* GetFactory(); class Base { public: virtual ~Base() {} virtual void QueryInterface( const char* id, void** ppInterface ) = 0; virtual void Release() = 0; }; class ConnectionPoint : public Base { public: virtual void Bind( const char* id, void* pEvents ) = 0; virtual void Unbind( const char* id, void* pEvents ) = 0; }; class Factory : public Base { }; static const char* COMPONENT_ID = "Component"; class Component : public Base { public: virtual const char* GetString() const = 0; }; static const char* COMPONENT1_ID = "Component1"; class Component1 : public Base { public: virtual const char* GetString() const = 0; }; 


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдШрдЯрдХ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдПред рд╣рдо рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдХрд╛рд░рдЦрд╛рдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ ConnectionPoints рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрд╕реАрдорд┐рдд рд░реВрдк рд╕реЗ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк COM рдХреЗ рд╕рдорд╛рди рд╕рдВрджрд░реНрдн рдЧрд┐рдирддреА рдФрд░ рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

COM рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдХреЛ рд╕рдордЭрдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрдк рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рднрд┐рдиреНрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред COM рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ, рдФрд░ рдЗрд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмреЗрд╢рдХ, рдПрдХ рд╢реБрджреНрдз COM рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдмреЗрдорд╛рдиреА рд╣реИ, рдЗрд╕реЗ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд░рд▓ рдХрд╛рдо рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИред

рдЕрдХреНрд╕рд░, рдПрдХ рдЕрдореВрд░реНрдд рдХрд╛рд░рдЦрд╛рдирд╛ рдФрд░ рдПрдХ рдлреИрдХреНрдЯреНрд░реА рдлрд╝рдВрдХреНрд╢рди рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдШрдЯрдХ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЬрдм рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕, рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдирд┐рдпрдорди рд╣реЛрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐ рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП PIMPL рдореБрд╣рд╛рд╡рд░рд╛ рднреА рдорд╣рд╛рди рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ

рдареАрдХ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЫреБрдкрд╛рдиреЗ рд╕реЗ рд╕рдорд╛рди рдШрдЯрдХреЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдХрд╛рд░реНрдп рдореЗрдВ рдмрд╣реБрдд рдорджрдж рдорд┐рд▓рддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдШрдЯрдХ рдХреЛ рдПрдХ рдмрд╛рд░ рдЗрдХрдЯреНрдард╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рднрд░реА рд╣реБрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рд╕рдВрдХрд▓рди рдХреА рдЬрдЯрд┐рд▓рддрд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛, рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдореИрдВрдиреЗ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реА рдФрд░ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреАрд╡рди рдХрд╛ рдЖрдирдВрдж рд▓рд┐рдпрд╛ред

рдкреБрдирд╢реНрдЪ

рдЬрд╛рд╡рд╛ рдореЗрдВ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдШрдЯрдХ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд▓реА рдмрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХред

Source: https://habr.com/ru/post/In160735/


All Articles