Microsoft Windows API ಗಾಗಿ ಅಧಿಕೃತ ರಸ್ಟ್ ಲೈಬ್ರರಿಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದೆ

ಲೈಬ್ರರಿಯನ್ನು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ರಸ್ಟ್ ಕ್ರೇಟ್‌ನಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಇದನ್ನು ಈ ರೀತಿ ಬಳಸಬಹುದು:

[dependencies] windows = "0.2.1"

[build-dependencies] windows = "0.2.1"

ಇದರ ನಂತರ, build.rs ಬಿಲ್ಡ್ ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ, ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅಗತ್ಯವಿರುವ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ನೀವು ರಚಿಸಬಹುದು:

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(ಈವೆಂಟ್).ok()?;
WaitForSingleObject(ಈವೆಂಟ್, 0);
ಕ್ಲೋಸ್ ಹ್ಯಾಂಡಲ್(ಈವೆಂಟ್).ok()?;
}

ಸರಿ(())
}

ಕೆಲವು ಫಂಕ್ಷನ್ ಕರೆಗಳು ಅಸುರಕ್ಷಿತವಾಗಿ ಬಳಸುತ್ತವೆ ಏಕೆಂದರೆ ಈ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ರಸ್ಟ್ ಕನ್ವೆನ್ಶನ್‌ಗಳಿಗೆ ಅಳವಡಿಸದೆ ಹಾಗೆಯೇ ಒದಗಿಸಲಾಗಿದೆ. ಕ್ರೇಟ್ ಅನ್ನು ಅದೇ ತತ್ತ್ವದ ಮೇಲೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. libc, ಇದು libc ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಮೂಲಭೂತ ಕ್ರೇಟ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಸುರಕ್ಷಿತ ಇಂಟರ್ಫೇಸ್ನೊಂದಿಗೆ ಗ್ರಂಥಾಲಯಗಳನ್ನು ನಿರ್ಮಿಸಲು ಆಧಾರವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ.


ಯೋಜನೆಯನ್ನು ಚೌಕಟ್ಟಿನೊಳಗೆ ರಚಿಸಲಾಗಿದೆ Win32 ಮೆಟಾಡೇಟಾ ಯೋಜನೆ, ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಿಗೆ API ಗಳನ್ನು ರಚಿಸಲು ಸುಲಭವಾಗುವಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಯೋಜನೆಯ ಮೊದಲ ಹಂತದಲ್ಲಿ ಮೆಟಾಡೇಟಾ ಯೋಜನೆಯ ಆಧಾರದ ಮೇಲೆ ರಚಿಸಲಾದ ಎರಡನೇ ಗ್ರಂಥಾಲಯ - C#/Win32. ಮೈಕ್ರೋಸಾಫ್ಟ್ ಸಹ ಕೆಲಸದ ಪ್ರಾರಂಭವನ್ನು ಘೋಷಿಸಿತು C++ ಗಾಗಿ ಆವೃತ್ತಿ, ಇದು ಭಾಷೆಯ ಆಧುನಿಕ ಶೈಲಿಯನ್ನು ಬಳಸುತ್ತದೆ.

ಮೂಲ: linux.org.ru