Microsoft китобхонаи расмии Rust-ро барои API Windows нашр кард

Китобхона ҳамчун як қуттии Rust тибқи литсензияи MIT тарҳрезӣ шудааст, ки онро метавон чунин истифода бурд:

[вобастагӣ] тирезаҳо = "0.2.1"

[вобастагии сохтмон] windows = "0.2.1"

Пас аз ин, дар скрипти build.rs, шумо метавонед модулҳоеро эҷод кунед, ки барои барномаи шумо лозиманд:

fn main() {
windows :: созед!(
windows ::дата ::xml ::dom ::*
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject}
windows ::win32 ::windows_programming ::CloseHandle
);
}

Ҳуҷҷатҳо дар бораи модулҳои дастрас нашр карда мешаванд docs.rs.

Рамзи намунавӣ:

пайвандҳои мод {
::windows ::include_bindings!();
}

пайвандҳоро истифода баред ::{
windows::data::xml::dom::*,
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
windows ::win32 ::windows_programming ::CloseHandle,
};

fn main() -> windows ::Result<()> {
let doc = XmlDocument::new()?;
doc.load_xml(" Салом Ҷаҳон ");

бигзор реша = doc.document_element()?;
тасдиқ!(root.node_name()? == "html");
assert!(root.inner_text()? == "Салом ҷаҳон");

бехатар {
бигзор ҳодиса = CreateEventW (
std :: ptr :: null_mut (),
true.into(),
false.into(),
std :: ptr :: null (),
);

SetEvent(ходиса).ok()?;
WaitForSingleObject(ҳодиса, 0);
CloseHandle(ҳодиса).ok()?;
}

Дуруст(())
}

Баъзе зангҳои функсионалӣ хатарнок истифода мебаранд, зеро ин функсияҳо бе мутобиқ кардани онҳо ба конвенсияҳои Rust ҳамчун мавҷудбуда таъмин карда мешаванд. Crate аз рӯи ҳамин принсип тарҳрезӣ шудааст. libc, ки ҳамчун қуттии асосӣ барои дастрасӣ ба libc хизмат мекунад ва ҳамчун асос барои сохтани китобхонаҳо бо интерфейси бехатар истифода мешавад.


Лоиҳа дар доираи он таҳия шудааст Лоиҳаи метамаълумоти Win32, ки барои осон кардани сохтани API барои забонҳои гуногуни барномасозӣ пешбинӣ шудааст. Китобхонаи дуюм, ки дар асоси лоиҳаи метамаълумот дар марҳилаи якуми лоиҳа таъсис дода шудааст - C#/Win32. Microsoft инчунин дар бораи оғози кор эълон кард версияи C++, ки услуби муосири забонро истифода мебарад.

Манбаъ: linux.org.ru