Microsoft yakaburitsa iyo official Rust raibhurari yeWindows API

Raibhurari yacho yakagadzirwa seRust crate pasi peMIT License, inogona kushandiswa seizvi:

[dependencies] windows = "0.2.1"

[kuvaka-kutsamira] windows = "0.2.1"

Mushure meizvi, mune build.rs kuvaka script, unogona kugadzira ma module anodiwa pakushandisa kwako:

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

Zvinyorwa zvemamodule anowanikwa anoburitswa pa docs.rs.

Sample code:

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

shandisa zvisungo ::{
windows::data::xml::dom::*,
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
windows::win32::windows_programming::CloseBandle,
};

fn chikuru() -> windows ::Result<()> {
let doc = XmlDocument::new()?;
doc.load_xml(" mhoro nyika ")?;

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

kusachengeteka {
rega chiitiko = CreateEventW(
std::ptr::null_mut(),
chokwadi.mu(),
nhema.mu(),
std::ptr::null(),
);

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

Zvakanaka(())
}

Mamwe mabasa anofona anoshandisa asina kuchengetedzeka nekuti aya mabasa anopihwa sezvaari, pasina kuachinjisa kune Rust magungano. Crate yakagadzirirwa pamusimboti mumwe chete. libc, iyo inoshanda seyakakosha crate yekuwana libc uye inoshandiswa sehwaro hwekuvaka maraibhurari ane yakachengeteka interface.


Iyo purojekiti yakagadzirwa mukati megadziriro Win32 Metadata Project, iyo yakagadzirirwa kuita kuti zvive nyore kugadzira maAPI emitauro yakasiyana-siyana yepurogiramu. Raibhurari yechipiri, iyo yakagadzirwa yakavakirwa paMetadata Project muchikamu chekutanga chepurojekiti - C#/Win32. Microsoft yakazivisawo kutanga kwebasa vhezheni yeC++, iyo inoshandisa mutauro wazvino uno.

Source: linux.org.ru