Kirjasto on suunniteltu MIT-lisenssin alaisena ruostelaatikoksi, jota voidaan käyttää seuraavasti:
[riippuvuudet] windows = "0.2.1" [build-dependencies] windows = "0.2.1"Tämän jälkeen voit luoda build.rs-koontiskriptissä sovelluksellesi tarvittavat moduulit:
fnmain() {
windows::build!(
windows::data::xml::dom::*
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject}
windows::win32::windows_programming::CloseHandle
);
}
Dokumentaatio saatavilla olevista moduuleista on julkaistu docs.rs.
Koodiesimerkki:
mod sidokset {
::windows::include_bindings!();
}
käytä sidoksia::{
windows::data::xml::dom::*,
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
windows::win32::windows_programming::CloseHandle,
};
fn main() -> windows::Result<()> {
anna doc = XmlDocument::new()?;
doc.load_xml(" Hei maailma ")?;
anna root = doc.document_element()?;
assert!(root.node_name()? == "html");
assert!(root.inner_text()? == "hei maailma");
vaarallinen {
anna tapahtuma = CreateEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);
SetEvent(tapahtuma).ok()?;
WaitForSingleObject(tapahtuma, 0);
CloseHandle(tapahtuma).ok()?;
}
Ok (())
}
Jotkut funktiokutsut käyttävät epäturvallista, koska nämä toiminnot tarjotaan sellaisenaan ilman, että niitä mukautetaan ruosteen käytäntöihin. Crate on suunniteltu samalla periaatteella. libc, joka toimii peruslaatikona libc:n käyttämiselle ja jota käytetään perustana rakennettaessa kirjastoja suojatulla käyttöliittymällä.
Projekti luotiin sen puitteissa Win32 metatietoprojekti, joka on suunniteltu helpottamaan API:iden luomista eri ohjelmointikielille. Toinen kirjasto, joka luotiin Metadata Projectin pohjalta projektin ensimmäisessä vaiheessa - C#/Win32. Microsoft ilmoitti myös työn aloittamisesta versio C++:lle, joka käyttää modernia kielen tyyliä.
Lähde: linux.org.ru