Microsoft huet déi offiziell Rust Bibliothéik fir d'Windows API verëffentlecht

D'Bibliothéik ass entworf als Rust Këscht ënner der MIT Lizenz, déi esou benotzt ka ginn:

[dependencies] windows = "0.2.1"

[build-dependencies] windows = "0.2.1"

Duerno, am build.rs Build Skript, kënnt Dir d'Moduler generéieren déi fir Är Applikatioun gebraucht ginn:

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

Dokumentatioun iwwer verfügbare Moduler gëtt publizéiert op docs.rs.

Beispill Code:

mod Bindungen {
:: Fënsteren :: enthalen_bindings!();
}

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

fn main() -> windows::Resultat<()> {
let doc = XmlDocument::new()?;
doc.load_xml(" Moien Welt ")?;

loossen root = doc.document_element()?;
assert!(root.node_name()? == "html");
behaapten!(root.inner_text()? == "Hallo Welt");

onsécher {
let event = CreateEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);

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

Ok(())
}

Puer Fonktioun Appellen benotzen onsécher well dës Fonctiounen sinn als ass, ouni Upassung hinnen ze Rust Konventioune. D'Këscht ass nom selwechte Prinzip entworf. libc, déi als Basis Këscht fir Zougang zu libc déngt an als Basis benotzt gëtt fir Bibliothéike mat enger sécherer Interface ze bauen.


De Projet gouf am Kader erstallt Win32 Metadaten Projet, déi entwéckelt ass fir et méi einfach ze maachen APIs fir verschidde Programméierungssproochen ze kreéieren. Déi zweet Bibliothéik, déi op Basis vum Metadatenprojet an der éischter Phase vum Projet erstallt gouf - C#/Win32. Microsoft huet och de Start vun der Aarbecht ugekënnegt Versioun fir C ++, déi e modernen Sproochstil benotzt.

Source: linux.org.ru