diff --git a/lib/std/os/windows/kernel32.zig b/lib/std/os/windows/kernel32.zig index 3d72b6f1a2..d7c9625bda 100644 --- a/lib/std/os/windows/kernel32.zig +++ b/lib/std/os/windows/kernel32.zig @@ -161,9 +161,6 @@ pub extern "kernel32" fn FormatMessageW(dwFlags: DWORD, lpSource: ?LPVOID, dwMes pub extern "kernel32" fn FreeEnvironmentStringsW(penv: [*:0]u16) callconv(WINAPI) BOOL; -pub extern "kernel32" fn GetCommandLineA() callconv(WINAPI) LPSTR; -pub extern "kernel32" fn GetCommandLineW() callconv(WINAPI) LPWSTR; - pub extern "kernel32" fn GetConsoleMode(in_hConsoleHandle: HANDLE, out_lpMode: *DWORD) callconv(WINAPI) BOOL; pub extern "kernel32" fn SetConsoleMode(in_hConsoleHandle: HANDLE, in_dwMode: DWORD) callconv(WINAPI) BOOL; diff --git a/lib/std/process.zig b/lib/std/process.zig index be8576442d..434e0fbbcc 100644 --- a/lib/std/process.zig +++ b/lib/std/process.zig @@ -1150,8 +1150,9 @@ pub const ArgIterator = struct { return ArgIterator{ .inner = try InnerType.init(allocator) }; } if (native_os == .windows) { - const cmd_line_w = windows.kernel32.GetCommandLineW(); - return ArgIterator{ .inner = try InnerType.init(allocator, cmd_line_w) }; + const cmd_line = std.os.windows.peb().ProcessParameters.CommandLine; + const cmd_line_w = cmd_line.Buffer.?[0 .. cmd_line.Length / 2 :0]; + return ArgIterator{ .inner = try InnerType.init(allocator, cmd_line_w.ptr) }; } return ArgIterator{ .inner = InnerType.init() };