Ua hoʻokuʻu ʻo Microsoft i ka hale waihona puke Rust no ka Windows API

Hoʻolālā ʻia ka waihona e like me ka Rust crate ma lalo o ka MIT License, hiki ke hoʻohana ʻia e like me kēia:

[nā hilinaʻi] puka makani = "0.2.1"

[build-dependencies] puka makani = "0.2.1"

Ma hope o kēia, ma ka build.rs build script, hiki iā ʻoe ke hana i nā modula e pono ai no kāu noi:

fn nui() {
puka makani::kūkulu!(
windows::data::xml::dom::*
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject}
windows::win32::windows_programming::CloseHandle
);
}

Paʻi ʻia nā palapala e pili ana i nā modula i loaʻa ma docs.rs.

Laʻana code:

nā hoʻopaʻa mod {
::windows::include_bindings!();
}

hoʻohana i nā mea paʻa::{
windows::data::xml::dom::*,
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
windows::win32::windows_programming::CloseHandle,
};

fn main() -> puka makani::Hua<()> {
let doc = XmlDocument::new()?;
doc.load_xml(" aloha honua ")?;

e aʻa = doc.document_element()?;
hōʻoia!(root.node_name()? == "html");
assert!(root.inner_text()? == "hello world");

palekana {
let event = CreateEventW(
std::ptr::null_mut(),
ʻoiaʻiʻo.i loko (),
false.into(),
std::ptr::null(),
);

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

ʻAe(())
}

Ke hoʻohana nei kekahi mau kelepona hana i ka palekana no ka mea ua hāʻawi ʻia kēia mau hana e like me ia, me ka hoʻololi ʻole ʻana iā lākou i nā hui Rust. Hoʻolālā ʻia ka Crate ma ke kumu like. libc, e lawelawe ana ma ke ʻano he pahu maʻamau no ke komo ʻana i ka libc a hoʻohana ʻia ma ke ʻano he kumu no ke kūkulu ʻana i nā hale waihona puke me kahi kikowaena paʻa.


Ua hana ʻia ka pāhana i loko o ka pā Win32 Metadata Project, i hoʻolālā ʻia e maʻalahi i ka hana ʻana i nā API no nā ʻōlelo hoʻonohonoho like ʻole. ʻO ka lua o ka waihona, i hana ʻia ma muli o ka Metadata Project i ka pae mua o ka papahana - C#/Win32. Ua hoʻolaha pū ʻo Microsoft i ka hoʻomaka ʻana o ka hana ma mana no C++, e hoʻohana ana i kahi ʻano ʻōlelo hou.

Source: linux.org.ru