56 lines
1.6 KiB
Rust
56 lines
1.6 KiB
Rust
/*!
|
|
Learn more about Rust for Windows here: <https://github.com/microsoft/windows-rs>
|
|
*/
|
|
|
|
#![no_std]
|
|
|
|
#[cfg(all(windows_raw_dylib, target_arch = "x86"))]
|
|
#[macro_export]
|
|
macro_rules! link {
|
|
($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => (
|
|
#[link(name = $library, kind = "raw-dylib", modifiers = "+verbatim", import_name_type = "undecorated")]
|
|
extern $abi {
|
|
$(#[$doc])?
|
|
$(#[link_name=$link_name])?
|
|
pub fn $($function)*;
|
|
}
|
|
)
|
|
}
|
|
|
|
#[cfg(all(windows_raw_dylib, not(target_arch = "x86")))]
|
|
#[macro_export]
|
|
macro_rules! link {
|
|
($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => (
|
|
#[link(name = $library, kind = "raw-dylib", modifiers = "+verbatim")]
|
|
extern "C" {
|
|
$(#[$doc])?
|
|
$(#[link_name=$link_name])?
|
|
pub fn $($function)*;
|
|
}
|
|
)
|
|
}
|
|
|
|
#[cfg(all(windows, not(windows_raw_dylib)))]
|
|
#[macro_export]
|
|
macro_rules! link {
|
|
($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => (
|
|
#[link(name = "windows.0.52.0")]
|
|
extern $abi {
|
|
$(#[$doc])?
|
|
$(#[link_name=$link_name])?
|
|
pub fn $($function)*;
|
|
}
|
|
)
|
|
}
|
|
|
|
#[cfg(all(not(windows), not(windows_raw_dylib)))]
|
|
#[macro_export]
|
|
macro_rules! link {
|
|
($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => (
|
|
extern $abi {
|
|
$(#[$doc])?
|
|
pub fn $($function)*;
|
|
}
|
|
)
|
|
}
|