aboutsummaryrefslogtreecommitdiff
path: root/lib/std/dynamic_library.zig
diff options
context:
space:
mode:
authorMichael Freundorfer <contact@mfreundorfercg.com>2020-11-27 19:21:29 +0100
committerAndrew Kelley <andrew@ziglang.org>2020-11-30 11:12:33 -0800
commitbaa075ac8cf3ff666b9f3d5c5a75e139f33b5d86 (patch)
tree729b3509495c86a353e4d4e3a7747fa9569a178b /lib/std/dynamic_library.zig
parent0369b65082be49eefacf767774a3d40ad7706de7 (diff)
downloadzig-baa075ac8cf3ff666b9f3d5c5a75e139f33b5d86.tar.gz
zig-baa075ac8cf3ff666b9f3d5c5a75e139f33b5d86.zip
Fix WindowsDynLib.openW trying to strip the \??\ prefix when it does not exist
Diffstat (limited to 'lib/std/dynamic_library.zig')
-rw-r--r--lib/std/dynamic_library.zig9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/std/dynamic_library.zig b/lib/std/dynamic_library.zig
index 68181e5742..f2e138c3f3 100644
--- a/lib/std/dynamic_library.zig
+++ b/lib/std/dynamic_library.zig
@@ -338,9 +338,14 @@ pub const WindowsDynLib = struct {
}
pub fn openW(path_w: [*:0]const u16) !WindowsDynLib {
- return WindowsDynLib{
+ var offset: usize = 0;
+ if (path_w[0] == '\\' and path_w[1] == '?' and path_w[2] == '?' and path_w[3] == '\\') {
// + 4 to skip over the \??\
- .dll = try windows.LoadLibraryW(path_w + 4),
+ offset = 4;
+ }
+
+ return WindowsDynLib{
+ .dll = try windows.LoadLibraryW(path_w + offset),
};
}