生成 DLL 转发的函数。
```rust forwarddll::forwarddll!( "version.dll", DLLVERSIONFORWARDER, GetFileVersionInfoA GetFileVersionInfoByHandle GetFileVersionInfoExA GetFileVersionInfoExW GetFileVersionInfoSizeA GetFileVersionInfoSizeExA GetFileVersionInfoSizeExW GetFileVersionInfoSizeW GetFileVersionInfoW VerFindFileA VerFindFileW VerInstallFileA VerInstallFileW VerLanguageNameA VerLanguageNameW VerQueryValueA VerQueryValueW );
pub extern "system" fn DllMain(inst: isize, reason: u32, _: *const u8) -> u32 { if reason == 1 { // 这里要自行持有底层的 version.dll 的句柄,防止被释放。 let _ = forwarddll::loadlibrary("C:\Windows\system32\version.dll"); // 调用 forwardall 方法,建立导出函数与目标函数之间的映射关系。 // 目前来说,这个方法是必须要调用的,因为 defaultjumper 方法还有一些问题会导致崩溃,没有找到原因。 let _ = unsafe { DLLVERSIONFORWARDER.forwardall() }; } 1 } ```
Copyright (c) 2022-present, hamflx