Microsoft ħarġet il-librerija uffiċjali Rust għall-API tal-Windows

Il-librerija hija ddisinjata bħala ċestun Rust taħt il-Liċenzja MIT, li tista 'tintuża hekk:

[dipendenzi] twieqi = "0.2.1"

[build-dependencies] windows = "0.2.1"

Wara dan, fl-iskrittura build.rs build, tista 'tiġġenera l-moduli li huma meħtieġa għall-applikazzjoni tiegħek:

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

Dokumentazzjoni dwar moduli disponibbli hija ppubblikata fuq docs.rs.

Eżempju ta' kodiċi:

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

uża rbit::{
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 (" Hello dinja ")?;

let root = doc.document_element ()?;
jasserixxu!(root.node_name()? == "html");
assert!(root.inner_text()? == "hello world");

mhux sikur {
let event = OħloqEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);

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

Kollox sew(())
}

Xi sejħiet għall-funzjoni jużaw mhux siguri minħabba li dawn il-funzjonijiet huma pprovduti kif inhuma, mingħajr ma jiġu adattati għall-konvenzjonijiet Rust. Ċestun huwa ddisinjat fuq l-istess prinċipju. libc, li jservi bħala ċestun bażiku għall-aċċess għal libc u jintuża bħala bażi għall-bini ta' libreriji b'interface sigura.


Il-proġett inħoloq fi ħdan il-qafas Proġett ta' Metadata Win32, li hija mfassla biex tagħmilha aktar faċli li jinħolqu APIs għal lingwi ta' programmar differenti. It-tieni librerija, li nħolqot ibbażata fuq il-Proġett tal-Metadata fl-ewwel fażi tal-proġett - C#/Win32. Microsoft ħabbret ukoll il-bidu tax-xogħol fuq verżjoni għal C++, li juża stil modern ta' lingwa.

Sors: linux.org.ru