Microsoft-ek Rust liburutegi ofiziala kaleratu du Windows APIrako

Liburutegia Rust kaxa gisa diseinatuta dago MIT Lizentziapean, eta honela erabil daiteke:

[mendekotasunak] leihoak = "0.2.1"

[eraiki-menpekotasunak] leihoak = "0.2.1"

Horren ondoren, build.rs build script-ean, zure aplikaziorako behar diren moduluak sor ditzakezu:

fn main() {
windows::eraiki!(
windows::data::xml::dom::*
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject}
windows::win32::windows_programming::CloseHandle
);
}

Eskuragarri dauden moduluen inguruko dokumentazioa egunean argitaratzen da doks.rs.

Adibidea kodea:

mod loturak {
::windows::include_bindings!();
}

erabili loturak::{
windows::data::xml::dom::*,
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
windows::win32::windows_programming::CloseHandle,
};

fn main() -> windows::Emaitza {
let doc = XmlDocument::new()?;
doc.load_xml("kaixo mundua");

utzi root = doc.document_element()?;
assert!(root.node_name()? == "html");
assert!(root.inner_text()? == "kaixo mundua");

seguru {
utzi gertaera = SortuGertaeraW(
std::ptr::null_mut(),
egia.to(),
false.to(),
std::ptr::null(),
);

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

Ados(())
}

Funtzio-dei batzuek ez-seguruak erabiltzen dituzte, funtzio hauek bere horretan ematen direlako, Rust-en konbentzioetara egokitu gabe. Crate printzipio berdinean diseinatu da. libc, libc atzitzeko oinarrizko kaxa gisa balio duena eta interfaze segurua duten liburutegiak eraikitzeko oinarri gisa erabiltzen dena.


Proiektua esparruan sortu zen Win32 Metadatuen Proiektua, programazio-lengoaia ezberdinetarako APIak sortzea errazteko diseinatuta dagoena. Bigarren liburutegia, proiektuaren lehen fasean Metadatu Proiektuan oinarrituta sortu zena - C#/Win32. Microsoft-ek lanen hasiera ere iragarri zuen C++rako bertsioa, hizkuntza estilo modernoa erabiltzen duena.

Iturria: linux.org.ru