Microsoft on välja andnud ametliku Rust-teegi Windows API jaoks

Teek on kujundatud Rust crate'i vormis MIT litsentsi all, mida saab kasutada järgmiselt:

[dependencies]
windows = "0.2.1"

[build-dependencies]
windows = "0.2.1"

Pärast seda saab build.rs ehitusskriptis genereerida teie rakendusele vajalikud moodulid:

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

Saadavalolevate moodulite dokumentatsioon on avaldatud docs.rs.

Koodinäide:

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

kasutada 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>tere maailm</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(())
}

Mõnede funktsioonikutsude puhul kasutatakse unsafe, kuna need funktsioonid on esitatud nagu nad on, neid ei kohandata Rusti konventsioonide järgi. Samuti on crate'i libc, mis on põhi crate, toetades libci ja mida kasutatakse turvalise liidese loomise aluseks.


Projekt on loodud Win32 Metadata Project, mis on loodud API-de loomise lihtsustamiseks erinevates programmeerimiskeeltes. Teine teek, mis on loodud Metadata Projecti alusel projekti esimese etapi raames — C#/Win32. Microsoft kuulutas ka välja C++ versiooni arendamise alguse , mis kasutab keele kaasaegset stiili.Puudus, mis oli seotud liiga kiire kerimisega puuteplaadi kasutamisel, on lahendatud ilma parandamiseta.

Allikas: linux.org.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster