Microsoft has released an official Rust library for the Windows API

De bibliotheek is vormgegeven als een Rust crate onder de MIT-licentie, die je als volgt kunt gebruiken:

[dependencies]
windows = "0.2.1"

[build-dependencies]
windows = "0.2.1"

Vervolgens kun je in het build-script build.rs de modules genereren die je voor je applicatie nodig hebt:

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

De documentatie over de beschikbare modules is gepubliceerd op docs.rs.

Voorbeeldcode:

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

use bindings::{
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("<html>Hallo wereld</html>")?;

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

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

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

Ok(())
}

Voor sommige functieaanroepen wordt unsafe gebruikt, aangezien deze functies worden aangeboden zoals ze zijn, zonder aanpassing aan de Rust-conventies. Crate is op dezelfde manier ontworpen libc, dat dient als de basismodule voor toegang tot libc en wordt gebruikt als basis voor het bouwen van bibliotheken met een veilige interface.


Het project is opgericht in het kader van Win32 Metadata Project, dat tot doel heeft het creĆ«ren van API's voor verschillende programmeertalen te vergemakkelijken. De tweede bibliotheek, die op basis van het Metadata Project in de eerste fase van het project is gemaakt — C#/Win32. Microsoft heeft ook de start van een versie voor C++, die moderne taalstijlen gebruikt.

Bron: linux.org.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster