Microsoft ewepụtala ọba akwụkwọ Rust maka Windows API

Emebere ọba akwụkwọ ahụ ka ọ bụrụ nchara nchara n'okpuru ikikere MIT, nke enwere ike iji dị ka nke a:

[dependencies] windows = "0.2.1"

[build-dependencies] windows = "0.2.1"

Mgbe nke a gasịrị, na build.rs na-ewu script, ị nwere ike ịmepụta modul ndị achọrọ maka ngwa gị:

fn isi() {
windo:: wuo!(
windows::data::xml::dom::*
windows :: win32 :: ọrụ_system :: {CreateEventW, SetEvent, WaitForSingleObject}
windows::win32::windows_programming::CloseHandle
);
}

A na-ebipụta akwụkwọ gbasara modul dịnụ doc.rs.

Koodu nlele:

mod njikọ {
::window::gụnyere_bindings!();
}

jiri njide::{
windows::data::xml::dom::*,
windows::win32::ọrụ_system::{CreateEventW, SetEvent, WaitForSingleObject},
windows::win32::windows_programming::Close Handle,
};

fn main () -> windo :: Nsonaazụ<()> {
ka doc = XmlDocument :: ọhụrụ()?;
doc.load_xml (" Ndewo Ụwa ")?;

ka mgbọrọgwụ = doc.document_element ()?;
kwupụta!(root.node_name()? == "html");
kwupụta!(root.inner_text()? == "ndewo ụwa");

adịghị ize ndụ {
mee ihe omume = CreateEventW(
std::ptr:: null_mut(),
eziokwu.n'ime(),
ụgha.n'ime(),
std::ptr:: null(),
);

SetEvent(omume).ok()?;
WaitForSingleObject (omume, 0);
CloseHandle(omume).ok()?;
}

Ọ dị mma(())
}

Ụfọdụ oku ọrụ na-eji enweghị nchekwa n'ihi na a na-enye ọrụ ndị a dịka ọ dị, na-enweghị imegharị ha na mgbakọ nchara. Emebere crate n'otu ụkpụrụ ahụ. libc, nke na-eje ozi dị ka oghere dị mkpa maka ịnweta libc ma jiri ya mee ihe dị ka ihe ndabere maka iwulite ọba akwụkwọ na interface dị nchebe.


Emepụtara oru ngo a n'ime usoro Win32 Metadata Project, nke e mere iji mee ka ọ dịkwuo mfe ịmepụta API maka asụsụ mmemme dị iche iche. Ọbá akwụkwọ nke abụọ, nke e mepụtara dabere na Metadata Project na akụkụ mbụ nke ọrụ ahụ - C#/Win32. Microsoft kwuputakwara mmalite ọrụ na ụdị maka C++, nke na-eji ụdị asụsụ ọgbara ọhụrụ eme ihe.

isi: linux.org.ru