diff --git a/src-tauri/build.rs b/src-tauri/build.rs index 3a8a7951..595b3cc8 100644 --- a/src-tauri/build.rs +++ b/src-tauri/build.rs @@ -13,6 +13,8 @@ fn main() { .file("memset_s_shim.c") .compile("memset_shim"); println!("cargo:rerun-if-changed=memset_s_shim.c"); + // Explicitly link the shim library + println!("cargo:rustc-link-lib=static=memset_shim"); } tauri_build::build() diff --git a/src-tauri/memset_s_shim.c b/src-tauri/memset_s_shim.c index 58935b98..864ab8ae 100644 --- a/src-tauri/memset_s_shim.c +++ b/src-tauri/memset_s_shim.c @@ -6,7 +6,13 @@ #include -void memset_explicit(void *dest, int val, size_t n) { +#ifdef _WIN32 +#define EXPORT __declspec(dllexport) +#else +#define EXPORT +#endif + +EXPORT void memset_explicit(void *dest, int val, size_t n) { volatile unsigned char *p = (volatile unsigned char *)dest; while (n--) { *p++ = (unsigned char)val;