Skip to content

Remaining code gen for windows-sys crate#1314

Merged
kennykerr merged 9 commits intomasterfrom
abi
Nov 12, 2021
Merged

Remaining code gen for windows-sys crate#1314
kennykerr merged 9 commits intomasterfrom
abi

Conversation

@kennykerr
Copy link
Copy Markdown
Collaborator

@kennykerr kennykerr commented Nov 12, 2021

Here's a comparison (updated comparison here).

windows crate

use windows::{core::*, Win32::Foundation::*, Win32::System::Threading::*, Win32::UI::WindowsAndMessaging::*};

fn main() -> Result<()> {
    unsafe {
        let event = CreateEventW(std::ptr::null_mut(), true, false, None);
        SetEvent(event).ok()?;
        WaitForSingleObject(event, 0);
        CloseHandle(event).ok()?;

        MessageBoxA(None, "Text", "Caption", MB_OK);
    }

    Ok(())
}
C:\git\compare\windows>cargo build
   Compiling windows_x86_64_msvc v0.26.0 (C:\git\windows-rs\crates\targets\x86_64_msvc)
   Compiling windows-sys v0.26.0 (C:\git\windows-rs\crates\deps\sys)
   Compiling windows v0.26.0 (C:\git\windows-rs)
   Compiling windows v0.1.0 (C:\git\compare\windows)
    Finished dev [unoptimized + debuginfo] target(s) in 9.29s

windows-sys crate

use windows_sys::{Win32::Foundation::*, Win32::System::Threading::*, Win32::UI::WindowsAndMessaging::*};

fn main() {
    unsafe {
        let event = CreateEventW(std::ptr::null_mut(), BOOL(1), BOOL(0), PWSTR(std::ptr::null_mut()));
        SetEvent(event);
        WaitForSingleObject(event, 0);
        CloseHandle(event);

        MessageBoxA(HWND(0), PSTR(b"Text\0".as_ptr() as _), PSTR(b"Caption\0".as_ptr() as _), MB_OK);
    }
}
C:\git\compare\windows-sys>cargo build
   Compiling windows_x86_64_msvc v0.26.0 (C:\git\windows-rs\crates\targets\x86_64_msvc)
   Compiling windows-sys v0.26.0 (C:\git\windows-rs\crates\deps\sys)
   Compiling windows-sys v0.1.0 (C:\git\compare\windows-sys)
    Finished dev [unoptimized + debuginfo] target(s) in 4.51s

winapi crate

use winapi::{um::handleapi::*, um::synchapi::*, um::winuser::*};

fn main() {
    unsafe {
        let event = CreateEventW(std::ptr::null_mut(), 1, 0, std::ptr::null_mut());
        SetEvent(event);
        WaitForSingleObject(event, 0);
        CloseHandle(event);

        MessageBoxA(std::ptr::null_mut(), b"Text\0".as_ptr() as _, b"Caption\0".as_ptr() as _, MB_OK);
    }
}
C:\git\compare\winapi>cargo build
   Compiling winapi v0.3.9 (C:\git\winapi-rs)
   Compiling winapi v0.1.0 (C:\git\compare\winapi)
    Finished dev [unoptimized + debuginfo] target(s) in 5.37s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant