Gipagawas sa Microsoft ang opisyal nga Rust library para sa Windows API

Ang librarya gidisenyo isip Rust crate ubos sa MIT License, nga mahimong gamiton sama niini:

[dependencies] windows = "0.2.1"

[build-dependencies] windows = "0.2.1"

Human niini, sa build.rs build script, mahimo nimong mamugna ang mga modules nga gikinahanglan para sa imong aplikasyon:

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

Ang dokumentasyon bahin sa magamit nga mga module gipatik sa docs.rs.

Sample code:

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

gamita ang mga binding::{
windows::data::xml::dom::*,
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
windows::win32::windows_programming::CloseHandle,
};

fn main() -> windows::Resulta<()> {
let doc = XmlDocument::new()?;
doc.load_xml(" kumusta kalibutan ")?;

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

dili luwas {
let event = CreateEventW(
std::ptr::null_mut(),
tinuod.into(),
bakak.into(),
std::ptr::null(),
);

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

Ok(())
}

Ang ubang mga function call migamit ug dili luwas tungod kay kini nga mga function gihatag ingon nga mao, nga walay pagpahiangay kanila sa Rust convention. Ang Crate gidisenyo sa parehas nga prinsipyo. libc, nga nagsilbi nga batakang crate sa pag-access sa libc ug gigamit isip basehan sa pagtukod og mga librarya nga adunay luwas nga interface.


Ang proyekto gimugna sulod sa gambalay Win32 Metadata Project, nga gidesinyo aron mas sayon ​​ang paghimo og mga API alang sa lain-laing mga programming language. Ang ikaduha nga librarya, nga gimugna base sa Metadata Project sa unang hugna sa proyekto - C#/Win32. Gipahibalo usab sa Microsoft ang pagsugod sa pagtrabaho sa bersyon alang sa C++, nga naggamit ug modernong estilo sa pinulongan.

Source: linux.org.ru