рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдиреЗ рд╡рд┐рдВрдбреЛрдЬ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд╕реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬрд╛рд░реА рдХреА рд╣реИ

рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдПрдордЖрдИрдЯреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд░рд╕реНрдЯ рдХреНрд░реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

[рдирд┐рд░реНрднрд░рддрд╛рдПрдВ] рд╡рд┐рдВрдбреЛрдЬрд╝ = "0.2.1"

[рдмрд┐рд▓реНрдб-рдирд┐рд░реНрднрд░рддрд╛рдПрдВ] рд╡рд┐рдВрдбреЛрдЬрд╝ = "0.2.1"

рдЗрд╕рдХреЗ рдмрд╛рдж, build.rs рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЖрдк рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдПрдлрдПрди рдореБрдЦреНрдп() {
рд╡рд┐рдВрдбреЛрдЬрд╝::рдмрд┐рд▓реНрдб!(
рд╡рд┐рдВрдбреЛрдЬрд╝::рдбреЗрдЯрд╛::xml::dom::*
рд╡рд┐рдВрдбреЛрдЬрд╝::win32::system_services::{CreateEventW, SetEvent, waitForSingleObject}
рд╡рд┐рдВрдбреЛрдЬрд╝::win32::windows_programming::CloseHandle
);
}

рдЙрдкрд▓рдмреНрдз рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ docs.rs.

рдирдореВрдирд╛ рдХреЛрдб:

рдореЙрдб рдмрд╛рдЗрдВрдбрд┐рдВрдЧ {
::рд╡рд┐рдВрдбреЛрдЬрд╝::include_bindings!();
}

рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ::{
рд╡рд┐рдВрдбреЛрдЬрд╝::рдбреЗрдЯрд╛::xml::dom::*,
рд╡рд┐рдВрдбреЛрдЬрд╝::win32::system_services::{CreateEventW, SetEvent, waitForSingleObject},
рд╡рд┐рдВрдбреЛрдЬрд╝::win32::windows_programming::CloseHandle,
};

fn рдореБрдЦреНрдп() -> рд╡рд┐рдВрдбреЛрдЬрд╝::рдкрд░рд┐рдгрд╛рдо {
рдЪрд▓реЛ doc = XmlDocument::new()?;
doc.load_xml('рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб')?;

рд▓реЗрдЯ рд░реВрдЯ = doc.document_element()?;
рдЬрд╝реЛрд░!(root.node_name()? == "html");
рдЬрд╝реЛрд░!(root.inner_text()? == "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб");

рдЕрд╕реБрд░рдХреНрд╖рд┐рдд {
рд▓реЗрдЯ рдЗрд╡реЗрдВрдЯ = CreateEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);

SetEvent(event).ok()?;
waitForSingleObject(рдШрдЯрдирд╛, 0);
рдХреНрд▓реЛрдЬрд╣реИрдВрдбрд▓(рдЗрд╡реЗрдВрдЯ).рдареАрдХ()?;
}

рдареАрдХ рд╣реИ(())
}

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


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдмрдирд╛рдИ рдЧрдИ рдереА Win32 рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЬрд┐рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреВрд╕рд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЬреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЧрдИ рдереА - рд╕реА#/рд╡рд┐рди32. рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдиреЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рднреА рдШреЛрд╖рдгрд╛ рдХреА C++ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг, рдЬреЛ рднрд╛рд╖рд╛ рдХреА рдЖрдзреБрдирд┐рдХ рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╕реНрд░реЛрдд: linux.org.ru