рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдирд┐рдпрдо, рдЗрдирд▓рд╛рдЗрди рдФрд░ рдЙрдирдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо

C ++ рдХреЛ рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рд╡рди рдбреЗрдлрд┐рдирд┐рд╢рди рд░реВрд▓, ODRред рдЬреИрд╕реЗ рд╣реА рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрд╡рд╛рдж рдЗрдХрд╛рдЗрдпреЛрдВ (.cpp рдлрд╝рд╛рдЗрд▓реЛрдВ) рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рд▓рд┐рдВрдХрд┐рдВрдЧ рдЪрд░рдг рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИред



рдЗрдирд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рди рдЖрдорддреМрд░ рдкрд░ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ (.h) рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕рднреА рдЕрдиреБрд╡рд╛рдж рдЗрдХрд╛рдЗрдпрд╛рдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦ рд╕рдХреЗрдВ рдФрд░ рдХреЙрд▓ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЗрд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХреЗрдВред рддрджрдиреБрд╕рд╛рд░, рдЬреИрд╕реЗ рд╣реА рдЖрдк рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╕рд╛рд░рдг рдЗрдХрд╛рдИ рдореЗрдВ рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ, рдУрдбреАрдЖрд░ рдХрд╛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди ... рдЖрдкрдХреЛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред



рдХреНрдпреЛрдВ рдФрд░ рдХреНрдпрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ?

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



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



рдЗрд╕рд▓рд┐рдП рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдУрдбреАрдЖрд░ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред



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



рдзреАрд░реЗ-рдзреАрд░реЗ рд╕рд░рдЧрд░реНрдореА, рдереЛрдбрд╝рд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдЬреЛрдбрд╝реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдЯреАрдПрд▓ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ):



 //CommonFile.h __declspec( noinline ) //  noinline inline void HandleErrorCondition( int condition ) { #ifndef OVERRIDE_STANDARD_HANDLING _exit(1); #else CustomHandleErrorCondition( condition ); #endif } //StaticLib.h #include <CommonFile.h> inline void SomeUsefulFunction() { //blahblahblah HandleErrorCondition( 0 ); } //StaticLib.cpp #include <StaticLib.h> blahblahblah,  SomeUsefulFunction() //Executable.cpp void CustomHandleErrorCondition( int condition ) { throw MyCustomException( condition ); } #define OVERRIDE_STANDARD_HANDLING #include <StaticLib.h> blahblahblah,  SomeUsefulFunction() //V2UncmUgaGlyaW5nIC0gd3d3LmFiYnl5LnJ1L3ZhY2FuY3k=
      
      









StaticLib.cpp StaticLib.lib рд╕реНрдЯреЗрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ Executable.cpp рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ (.exe рдпрд╛ .dll - рд╡реИрд╕реЗ рднреА) рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ StaticLib.lib рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред



HandleErrorCondition () рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ __declspec (noinline) рд╢рд╛рдорд┐рд▓ рд╣реИ, рдПрдХ рд╡рд┐рдЬреБрдЕрд▓ C ++ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛ рд╕рдВрдХрд▓рдХ рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рдВрдХрд▓рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рди рдХрд░реЗ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрд╛рдж рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рджреГрд╢реНрдп C ++ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред



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



рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛? HandleErrorCondition () - _exit () рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдпрд╛ CustomHandleErrorCondition () рдХреЗ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХреМрди рд╕рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛?



рдЕрдЬреНрдЮрд╛рддред



рдЬрдм рдХрдВрдкрд╛рдЗрд▓рд░ StaticLib.cpp рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ (StaticLib.obj) рдореЗрдВ рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ - _exit () рдкрд░ рдХреЙрд▓ рдХреЗ рд╕рд╛рдеред рдЬрдм рдХрдВрдкрд╛рдЗрд▓рд░ Executable.cpp рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ (Executable.obj) рдореЗрдВ рдПрдХ рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ - CustomHandleErrorCondition () рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдХреЗ рд╕рд╛рдеред



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



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



рджреГрд╢реНрдп рд╕реА ++ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ (рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЪреБрдирдирд╛) рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдЫ рдкрд╛рдардХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рд╕реНрдЯрд┐рдХ рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦрдиреЗ рдХреА рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реНрдпрд░реНрдеред рд╕реА ++ рдЖрдИрдПрд╕рдУ / рдЖрдИрдИрд╕реА 14882: 2003 (рдИ), рдкреИрд░рд╛ 3.2 / 5 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд░реНрдгрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рд▓рд┐рдВрдХрд░ рдХрд┐рд╕реА рднреА рдЙрдЪрд┐рдд рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рд╣реИ, рди рд╣реА рд╕рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдкрд░ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╣реА рд╣реЛрдЧрд╛ рдЬреЛ рдЖрдк рдЙрдореНрдореАрдж рдХрд░рддреЗ рдереЗ, рдХреБрдЫ рдореЗрдВ, рд╢рд╛рдпрдж рдирд╣реАрдВред рддреЛ рд╡рд┐рдЬреБрдЕрд▓ C ++ рдирд┐рд░реНрджреЛрд╖ рд╣реИред



рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреГрддреНрд░рд┐рдо рдФрд░ рдЯреЗрдврд╝рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдлрд┐рд░, __declspec (noinline) рд╡рд┐рдЬрд╝реБрдЕрд▓ C ++ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдареАрдХ рдЙрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреЗ рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╣реИрдВред



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЗрдбрд░ рдореЗрдВ, рдПрдХ рд╣реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдЗрдирд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рди рдЧрд▓рддреА рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдРрд╕реА рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рджреЛрдиреЛрдВ рд╣реЗрдбрд░ рдХреЛ рдПрдХ рд╣реА .cpp рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧреА рдФрд░ рдлрд┐рд░ рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ ODR рдЙрд▓реНрд▓рдВрдШрди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд╛рдПрдВрдЧреЗред рд╡рд┐рднрд┐рдиреНрди .cpp рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреБрдЫ рд╕рдВрдХрд▓рдХ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред рдлрд┐рд░ рд╕реЗ рд╡рд╣реА рд╕реНрдерд┐рддрд┐ред #pragma рдкреИрдХ рднреА рдпреЛрдЧрджрд╛рди рджреЗ рд╕рдХрддрд╛ рд╣реИред



рдЕрдВрдд рдореЗрдВ, рдпрджрд┐ __declspec (noinline) рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдВрдкреНрд▓рд╛рдпрдВрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдЪрд┐рд╣реНрдиреЛрдВ рдХреЗ рдЕрдиреБрд░реБрдк рдлрдВрдХреНрд╢рди рдЯреНрд░рд╛рдВрд╕рд▓реЗрд╢рди рдХрд╛ рд╡рд┐рдХрд▓реНрдк рджреЗ рд╕рдХрддрд╛ рд╣реИред



рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рджреЛрд╖реЛрдВ рдХреА рдЧреБрдВрдЬрд╛рдЗрд╢ рдЕрдирдВрдд рд╣реИред рдРрд╕реЗ рджреЛрд╖реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛, рдЬрдм рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рд╣реИрдВ, рдмреЗрд╣рдж рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рд╕рдорд╛рди рд░рд╣ рд╕рдХрддрд╛ рд╣реИ - рддрджрдиреБрд╕рд╛рд░, рдПрдХ рджреЛрд╖ рднреА рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред



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



рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ StaticLib рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ OVERRIDE_STANDARD_HANDLING рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



рдЕрдкрдирд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрдирд╛ред



рджрд┐рдорд┐рддреНрд░реА рдореЗрд╢реНрдЪреЗрд░реАрдХреЛрд╡

рдбрд╛рдЯрд╛ рдПрдВрдЯреНрд░реА рдЙрддреНрдкрд╛рдж рд╡рд┐рднрд╛рдЧ



All Articles