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 veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster