Microsoft nxori bibliotekën zyrtare Rust për Windows API

Biblioteka është e ndërtuar si Rust crate nën MIT License, e cila mund të përdoret kështu:

[dependencies]
windows = "0.2.1"

[build-dependencies]
windows = "0.2.1"

Pas kësaj, në skenarin e ndërtimit build.rs mund të gjeneroni modulet që ju nevojiten për aplikacionin tuaj:

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

Dokumentacioni për modulet e disponueshme është publikuar në docs.rs.

Shembulli i kodit:

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>hello world</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(())
}

Për disa thirrje funksionesh përdoret unsafe, pasi këto funksione ofrohen ashtu si janë, pa i adaptruar ato në konventat e Rust. Njësoj është ndërtuar edhe crate libc, i cili shërben si crate bazë për qasje në libc dhe përdoret si bazë për ndërtimin e biblioteka me ndërfaqe të sigurt.


Projekti Ă«shtĂ« krijuar nĂ« kuadĂ«r tĂ« Win32 Metadata Project, i cili ka pĂ«r qĂ«llim tĂ« lehtĂ«sojĂ« krijimin e API-ve pĂ«r gjuhĂ« tĂ« ndryshme programuese. Biblioteka e dytĂ«, e cila u krijua nĂ« bazĂ« tĂ« Metadata Project nĂ« fazĂ«n e parĂ« tĂ« projektit — C#\/Win32. Microsoft gjithashtu ka njoftuar fillimin e punĂ«s mbi versionin pĂ«r C++, i cili pĂ«rdor stilin modern tĂ« gjuhĂ«s.

Burimi: linux.org.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster