Microsoft dia namoaka ny tranomboky Rust ofisialy ho an'ny Windows API

Ny trano famakiam-boky dia natao ho toy ny Rust crate eo ambanin'ny MIT License, izay azo ampiasaina toy izao:

[fiankinan-doha] windows = "0.2.1"

[build-dependencies] windows = "0.2.1"

Aorian'izany, ao amin'ny script build.rs build, azonao atao ny mamorona ireo maody ilaina amin'ny fampiharanao:

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

Ny antontan-taratasy momba ny modules misy dia navoaka amin'ny docs.rs.

Kaody santionany:

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

mampiasa bindings::{
windows::data::xml::dom::*,
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
windows::win32::windows_programming::CloseHandle,
};

fn main() -> windows::Result<()> {
avelao doc = XmlDocument::new()?;
doc.load_xml(" Hello World ")?;

avelao ny faka = doc.document_element()?;
manamafy!(root.node_name()? == "html");
manamafy!(root.inner_text()? == "hello world");

tsy azo antoka {
avelao ny hetsika = CreateEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);

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

Ok(())
}

Ny antso sasany dia mampiasa tsy azo antoka satria omena araka ny tokony ho izy ireo fiasa ireo, nefa tsy mampifanaraka azy ireo amin'ny fivoriambe Rust. Crate dia natao amin'ny fitsipika mitovy. libc, izay toy ny vata fototra hidirana amin'ny libc ary ampiasaina ho fototry ny fananganana tranomboky misy interface tsara.


Ny tetikasa dia noforonina tao anatin'ny rafitra Win32 Metadata Project, izay natao hanamora ny famoronana API ho an'ny fiteny fandaharana samihafa. Ny tranomboky faharoa, izay noforonina mifototra amin'ny Tetikasa Metadata amin'ny dingana voalohany amin'ny tetikasa - C#/Win32. Microsoft dia nanambara ihany koa ny fanombohan'ny asa version ho an'ny C++, izay mampiasa fomba fiteny maoderina.

Source: linux.org.ru