மைக்ரோசாப்ட் விண்டோஸ் ஏபிஐக்கான அதிகாரப்பூர்வ ரஸ்ட் லைப்ரரியை வெளியிட்டுள்ளது

இந்த நூலகம் MIT உரிமத்தின் கீழ் ரஸ்ட் க்ரேட்டாக வடிவமைக்கப்பட்டுள்ளது, இதை இப்படிப் பயன்படுத்தலாம்:

[dependencies] windows = "0.2.1"

[build-dependencies] windows = "0.2.1"

இதற்குப் பிறகு, build.rs build ஸ்கிரிப்ட்டில், உங்கள் பயன்பாட்டிற்குத் தேவையான தொகுதிகளை நீங்கள் உருவாக்கலாம்:

fn முக்கிய() {
windows::கட்டு!(
windows::data::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<()> {
டாக் = XmlDocument:: new()?;
doc.load_xml(" வணக்கம் உலகம் ")?;

ரூட் = doc.document_element()?;
உறுதி!(root.node_name()? == "html");
உறுதி!(root.inner_text()? == "ஹலோ வேர்ல்ட்");

பாதுகாப்பற்ற {
நிகழ்வை விடுங்கள் = CreateEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);

SetEvent(event).ok()?;
WaitForSingleObject(நிகழ்வு, 0);
CloseHandle(event).ok()?;
}

சரி(())
}

சில செயல்பாடு அழைப்புகள் பாதுகாப்பற்றவையாகப் பயன்படுத்துகின்றன, ஏனெனில் இந்த செயல்பாடுகள் ரஸ்ட் மரபுகளுக்கு ஏற்ப மாற்றாமல் அப்படியே வழங்கப்படுகின்றன. கிரேட் அதே கொள்கையில் வடிவமைக்கப்பட்டுள்ளது. libc, இது libc ஐ அணுகுவதற்கான அடிப்படைக் கூட்டாக செயல்படுகிறது மற்றும் பாதுகாப்பான இடைமுகத்துடன் நூலகங்களை உருவாக்குவதற்கான அடிப்படையாகப் பயன்படுத்தப்படுகிறது.


திட்டத்திற்குள் உருவாக்கப்பட்டது Win32 மெட்டாடேட்டா திட்டம், இது வெவ்வேறு நிரலாக்க மொழிகளுக்கான API களை உருவாக்குவதை எளிதாக்கும் வகையில் வடிவமைக்கப்பட்டுள்ளது. திட்டத்தின் முதல் கட்டத்தில் மெட்டாடேட்டா திட்டத்தின் அடிப்படையில் உருவாக்கப்பட்ட இரண்டாவது நூலகம் - C#/Win32. மைக்ரோசாப்ட் வேலைகள் தொடங்கும் என்று அறிவித்தது C++ க்கான பதிப்பு, இது நவீன மொழி பாணியைப் பயன்படுத்துகிறது.

ஆதாரம்: linux.org.ru