From 66a107a4b9af9aa6545b79ccdcc9099d4a49cef6 Mon Sep 17 00:00:00 2001 From: LongYinan Date: Wed, 27 Apr 2022 13:36:11 +0800 Subject: [PATCH] chore(napi): upgrade windows crate --- crates/napi/Cargo.toml | 2 +- crates/napi/src/win_delay_load_hook.rs | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/crates/napi/Cargo.toml b/crates/napi/Cargo.toml index e2c58c6c..1c3e302b 100644 --- a/crates/napi/Cargo.toml +++ b/crates/napi/Cargo.toml @@ -73,7 +73,7 @@ optional = true version = "1" [target.'cfg(windows)'.dependencies] -windows = { version = "0.35", features = [ +windows = { version = "0.36", features = [ "Win32_System_WindowsProgramming", "Win32_System_LibraryLoader", "Win32_Foundation", diff --git a/crates/napi/src/win_delay_load_hook.rs b/crates/napi/src/win_delay_load_hook.rs index 7d8fcb53..98c3856c 100644 --- a/crates/napi/src/win_delay_load_hook.rs +++ b/crates/napi/src/win_delay_load_hook.rs @@ -10,6 +10,7 @@ //! [win_delay_load_hook.cc]: https://github.com/nodejs/node-gyp/blob/e18a61afc1669d4897e6c5c8a6694f4995a0f4d6/src/win_delay_load_hook.cc use std::ffi::CStr; +use std::os::raw::c_char; use windows::core::PCSTR; use windows::Win32::Foundation::HINSTANCE; @@ -36,7 +37,20 @@ unsafe extern "C" fn load_exe_hook(event: u32, info: *const DELAYLOAD_INFO) -> H return HINSTANCE::default(); } - unsafe { GetModuleHandleA(PCSTR::default()) } + match unsafe { GetModuleHandleA(PCSTR::default()) } { + Ok(h) => h, + Err(e) => unsafe { + let location = "win_delay_load_hook.rs\0"; + let err = format!("{}", e); + crate::sys::napi_fatal_error( + location.as_ptr() as *const c_char, + 22, + format!("{}\0", err).as_ptr() as *const c_char, + err.len(), + ); + unreachable!(); + }, + } } #[no_mangle]