рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рд░рдирдЯрд╛рдЗрдо рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрдВрдХреНрд╢рди рдХреЙрд▓реНрд╕ рдХреА рдиреЗрдЯрд╡рд░реНрдХ рдПрдХреНрд╕реЗрд╕

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


рдФрд░ рдХрд┐рд╕реА рддрд░рд╣, рдЪрддреБрд░рд╛рдИ рд╕реЗ *** y рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ┬й

рд╕рдорд╕реНрдпрд╛ рдХрдерди


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

рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬреЗ


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

рдЕрдиреБрд╡рд╛рджрдХ


рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

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

рд╣рд░ рдЬрдЧрд╣ рдЪрдВрдЪрд▓рддрд╛



рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЙрд╕рд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгред

typedef double (*myfunc_type)(long, long); ... void *mylib; myfunc_type myfunc; double res; ... mylib = dlopen("mylib.dll", RTLD_LAZY); myfunc = dlsym(mylib, "my_func_name"); res = (*myfunc)(2, 4); 


рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рдЙрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
typedef double (*myfunc_type)(long, long);

рдФрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЬрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЪрд░рдг рдореЗрдВ рд╣рдо рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдЬреНрдЮрд╛рдд рдХрд░реЗрдВрдЧреЗ?

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

 //    , //    TDLL_Function //  ,    (  ) function TDLL_Function.Execute(): TByteAr; var i: Integer; //   len : Integer; //      B1 : Byte; //    B2 : Word; //    B4 : Cardinal; //  4-  B8 : Double; //   8-  StackPos : Integer; //     begin //ParamBytes   ,      , //      len:=Length(ParamBytes); asm //    (  esp) mov StackPos, esp end; //ParamType   ,     : //TParamType = (ptOne=1, ptTwo=2, ptFour=4, ptEight=8, ptVoid=0, ptPointer=-1); //  ,       //   , ..         for i := Length(ParamType)-1 downto 0 do begin case ParamType[i] of //      ptOne:begin dec(len,1); //  ParamBytes    ( ),    Move(ParamBytes[len],B1,1); asm //  ,     MOVSX EAX,B1 PUSH EAX end; end; ptTwo:begin //     dec(len,2); Move(ParamBytes[len],B2,2); asm MOVSX EAX,B2 PUSH EAX end; end; ptFour:begin //     dec(len,4); Move(ParamBytes[len],B4,4); asm MOV EAX,B4 PUSH EAX end; end; //        ,    //64-  (8   )    ptPointer:begin dec(len,4); Move(ParamBytes[len],B4,4); asm MOV EAX,B4 PUSH EAX end; end; ptEight:begin dec(len,8); Move(ParamBytes[len],B8,8); asm //        PUSH DWORD PTR [B8]+$04 PUSH DWORD PTR B8 end; end; ptVoid: begin end; end; end; // B4       case fCallingConv of //       ccStdcall: begin TStdCall(Proc)(); //Proc -     asm //    MOV B4,EAX end; end; ccCdecl:begin TCdeclCall(Proc)(); //   Cdecl          asm MOV B4,EAX mov esp, StackPos; end; end; end; //   ,     case ResultType of //     ptOne:begin //   Result      B4 SetLength(Result,1); Move(Byte(B4),Result[0],1); end; ptTwo:begin SetLength(Result,2); Move(Word(B4),Result[0],2); end; ptFour:begin SetLength(Result,4); Move(B4,Result[0],4); end; ptPointer:begin SetLength(Result,4); Move(B4,Result[0],4); end; ptEight:begin //    ,  B8    asm FSTP B8 end; SetLength(Result,8); Move(B8,Result[0],8); end; ptVoid:begin SetLength(Result,0); end; end; end; 


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

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

рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рдо рдЗрд╕ рддрд░рд╣ рджреЗрдЦрд╛ рдЧрдпрд╛:
1) рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ
2) рдХреНрд▓рд╛рдЗрдВрдЯ рдЙрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдо рднреЗрдЬрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╡рд╣ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ
3) рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╡рд░рдг рднреЗрдЬрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ
4) рдХреНрд▓рд╛рдЗрдВрдЯ рдкреИрдХ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рднреЗрдЬрддрд╛ рд╣реИ
5) рдЕрдиреБрд╡рд╛рджрдХ рдкреНрд░рд╛рдкреНрдд рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рд╡рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ
6) рдЕрдиреБрд╡рд╛рджрдХ рдкреВрд░реНрд╡реЛрдХреНрдд рдПрдХреНрд╕рд┐рдХреНрдпреВрдЯ () рдХрд╣рддрд╛ рд╣реИ
7) рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛рд░реНрдп рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рдгрд╛рдореЛрдВ (рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдХреЛ рдкреИрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред

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

рдпреБрдкреАрдбреАред рдПрдХ рдЯреИрдЧ "рдмреИрд╕рд╛рдЦреА" рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рддрд╛рдХрд┐ рд╡рд░реНрдгрд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдЖрддреНрдо-рдкрд╣рдЪрд╛рди рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЧрд▓рддрдлрд╣рдореА рди рд╣реЛред

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


All Articles