dll_entry/
lib.rs

1#[macro_export]
2macro_rules! dll_entry
3{
4    ($callback:expr) => 
5    {
6        #[no_mangle]
7        pub extern "system" fn DllMain(_: *mut (), reason: u32, _: *mut ()) -> i32
8        {
9            match reason
10            {
11                0 => {}, // Process detach
12                1 =>
13                {
14                    std::thread::spawn(|| $callback());
15                }, // Process attach
16                _ => {}
17            }
18            1
19        }
20    }
21}