Microsoft tau tshaj tawm lub tsev qiv ntawv Rust rau Windows API

Lub tsev qiv ntawv yog tsim los ua Rust crate raws li MIT License, uas tuaj yeem siv tau zoo li no:

[dependencies] windows = "0.2.1"

[build-dependencies] windows = "0.2.1"

Tom qab no, hauv build.rs tsim tsab ntawv, koj tuaj yeem tsim cov modules uas xav tau rau koj daim ntawv thov:

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

Cov ntaub ntawv hais txog muaj modules tau luam tawm rau docs.rs.

Qauv code:

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

siv kev sib khi::{
windows::data::xml::dom::*,
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
windows::win32::windows_programming::CloseHandle,
};

fn main() -> windows::Result<()> {
cia doc = XmlDocument::new()?;
doc.load_xml(" nyob zoo ntiaj teb ")?;

cia hauv paus = doc.document_element()?;
assert!(root.node_name()? == "html");
assert!(root.inner_text()? == "nyob zoo ntiaj teb");

tsis nyab xeeb {
let event = CreateEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);

SetEvent(event).ok()?;
WaitForSingleObject(kev tshwm sim, 0);
CloseHandle(event).ok()?;
}

Ok (())
}

Qee qhov kev hu xov tooj siv tsis zoo vim tias cov haujlwm no tau muab raws li yog, yam tsis tau hloov mus rau Rust conventions. Crate yog tsim los ntawm tib txoj cai. libc, uas yog ib qho yooj yim crate rau kev nkag mus rau libc thiab yog siv los ua lub hauv paus rau lub tsev qiv ntawv nrog kev ruaj ntseg interface.


Qhov project tau tsim nyob rau hauv lub moj khaum Win32 Metadata Project, uas yog tsim los ua kom yooj yim rau kev tsim APIs rau ntau hom lus programming. Lub tsev qiv ntawv thib ob, uas tau tsim los ntawm Metadata Project hauv thawj theem ntawm qhov project - C#/Win32. Microsoft kuj tshaj tawm pib ua haujlwm rau version rau C++, uas siv hom lus niaj hnub no.

Tau qhov twg los: linux.org.ru ua