ืืกืคืจืืื ืืขืืฆืืช ืืืจืื ืืืืื ืชืืช ืจืืฉืืื MIT, ืฉื ืืชื ืืืฉืชืืฉ ืื ืื:
[ืชืืืช] windows = "0.2.1" [ืชืืืช ืืื ืืื] windows = "0.2.1"ืืืืจ ืืื, ืืกืงืจืืคื build.rs, ืชืืื ืืืฆืืจ ืืช ืืืืืืืื ืืืจืืฉืื ืืืืฉืื ืฉืื:
fn main() {
windows::build!(
windows::data::xml::dom::*
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject}
windows::win32::windows_programming::CloseHandle
);
}
ืชืืขืื ืขื ืืืืืืื ืืืื ืื ืืชืคืจืกื ื docs.rs.
ืงืื ืืืืืื:
ืืจืืืืช mod {
::windows::include_bindings!();
}
ืืฉืชืืฉ ืืืจืืืืช::{
windows::data::xml::dom::*,
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
windows::win32::windows_programming::CloseHandle,
};
fn main() -> windows::Result<()> {
let doc = XmlDocument::new()?;
doc.load_xml(" ืฉืืื ืขืืื ")?;
let root = doc.document_element()?;
assert!(root.node_name()? == "html");
assert!(root.inner_text()? == "ืฉืืื ืขืืื");
ืื ืืืื {
ืชื ืืืจืืข = CreateEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);
SetEvent(event).ok()?;
WaitForSingleObject(event, 0);
CloseHandle(event).ok()?;
}
ืืกืืจ(())
}
ืงืจืืืืช ืคืื ืงืฆืืืช ืืกืืืืืช ืืฉืชืืฉืืช ืืืฆื ืื ืืืื ืืืืืื ืฉืคืื ืงืฆืืืช ืืื ืืกืืคืงืืช ืืคื ืฉืื, ืืืื ืืืชืืื ืืืชื ืืืืกืืืืช Rust. ืืจืื ืืชืืื ื ืขื ืืืชื ืขืืงืจืื. libc, ืืืฉืืฉ ืืืจืื ืืกืืกื ืืืืฉื ื-libc ืืืฉืืฉ ืืืกืืก ืืื ืืืช ืกืคืจืืืช ืขื ืืืฉืง ืืืืืื.
ืืคืจืืืงื ื ืืฆืจ ืืืกืืจืช Win32 Metadata Project, ืฉื ืืขื ืืืงื ืขื ืืฆืืจืช ืืืฉืงื API ืขืืืจ ืฉืคืืช ืชืื ืืช ืฉืื ืืช. ืืกืคืจืืื ืืฉื ืืื, ืฉื ืืฆืจื ืขื ืืกืืก ืคืจืืืงื Metadata ืืฉืื ืืจืืฉืื ืฉื ืืคืจืืืงื - C#/Win32. ืืืงืจืืกืืคื ืื ืืืืืขื ืขื ืชืืืืช ืืขืืืื ืขื ืืจืกื ืขืืืจ C++, ืืืฉืชืืฉืช ืืกืื ืื ืืืืจื ื ืฉื ืฉืคื.
ืืงืืจ: linux.org.ru