Microsoft parantos ngarilis perpustakaan Rust resmi pikeun API Windows

Perpustakaan dirancang salaku peti Karat handapeun Lisensi MIT, anu tiasa dianggo sapertos kieu:

[dependensi] windows = "0.2.1"

[build-dependencies] windows = "0.2.1"

Saatos ieu, dina skrip ngawangun build.rs, anjeun tiasa ngahasilkeun modul anu diperyogikeun pikeun aplikasi anjeun:

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

Dokuméntasi ngeunaan modul sadia diterbitkeun dina docs.rs.

Kode sampel:

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

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

fn main() -> windows::Hasil<()> {
hayu doc ​​= XmlDocument::new()?;
doc.load_xml(" Halo Dunya ")?;

hayu root = doc.document_element()?;
negeskeun!(root.node_name()? == "html");
negeskeun!(root.inner_text()? == "halo dunya");

teu aman {
hayu acara = CreateEventW(
std::ptr::null_mut(),
leres.kana(),
false.kana(),
std::ptr::null(),
);

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

OKÉ(())
}

Sababaraha télépon fungsi ngagunakeun teu aman sabab fungsi ieu disadiakeun sakumaha anu kasebut, tanpa adaptasi kana konvénsi Rust. Crate dirancang dina prinsip anu sarua. libc, nu boga fungsi minangka crate dasar pikeun ngakses libc sarta dipaké salaku dadasar pikeun ngawangun perpustakaan jeung panganteur aman.


Proyék ieu didamel dina kerangka Proyék Metadata Win32, nu dirancang pikeun ngagampangkeun nyieun API pikeun basa programming béda. Perpustakaan kadua, anu didamel dumasar kana Proyék Metadata dina fase kahiji proyék - C # / Win32. Microsoft ogé ngumumkeun mimiti gawé dina Vérsi pikeun C ++, anu ngagunakeun gaya basa modern.

sumber: linux.org.ru