cppwin32 VS imgui

Compare cppwin32 vs imgui and see what are their differences.

cppwin32

A modern C++ projection for the Win32 SDK (by microsoft)

imgui

Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies (by ocornut)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
cppwin32 imgui
15 351
395 55,870
- -
5.5 9.7
over 3 years ago 1 day ago
C++ C++
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

cppwin32

Posts with mentions or reviews of cppwin32. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-03.
  • MSVC C++23 Update
    3 projects | /r/cpp | 3 Jun 2023
    I would imagine something like https://github.com/microsoft/cppwin32 would maybe be an easier way forward for that?
  • TIL we can prevent macro invocation by placing the function name in parentheses
    3 projects | /r/cpp | 21 May 2023
    no, Microsoft has rewritten the windows API in C++ I think https://github.com/microsoft/cppwin32
  • A brief interview with Tcl creator John Ousterhout
    9 projects | news.ycombinator.com | 10 Feb 2023
    An official work in progress Windows binding, still far behind of what C# existing bindings are capable of, or legacy toolkits like MFC.

    Also given how the team has managed C++/CX transition to C++/WinRT with lesser tooling stuck on C++17, dropped Modern C++ bindings [0][1], before going into other shinny thing, I wonder how long they will keep at it.

    [0] - https://blogs.windows.com/windowsdeveloper/2021/01/21/making...

    [1] - https://github.com/microsoft/cppwin32

  • VS2022 how to make Windows C++ (like VB) program
    1 project | /r/cpp_questions | 26 Jan 2023
    If you want to use the old tooling, your C++ is going to be very "C with classes," and it's going to use a lot of weird datatypes that don't feel very C++ at all. Microsoft had a project for wrapping the Windows API in idiomatic C++, but appear to have abandoned it. If you choose to go down this road, Charles Petzold's Programming Windows is the book to get. Yes, it's 25 years old, but all the new stuff is just new COM controls (which you can look up in the API documentation)--the fundamentals of making a Windows API program work seriously have not changed.
  • Windows API as a C++ module ?
    3 projects | /r/cpp_questions | 12 Nov 2022
    Even Rust has a native projection of the windows API (which is actually pretty usable). This projection has the same roots as the C++ projection mentioned by u/amnesiac0x07C5. So I don't believe macros are a blocker here.
  • Win32 strings
    1 project | /r/cpp_questions | 6 Apr 2022
    See : https://github.com/microsoft/cppwin32
  • Wanting to get started
    2 projects | /r/cpp_questions | 27 Jan 2022
    Microsoft have recently put decent effort into making the Windows APIs more accessible to C++ users. One of these efforts is called C++/WinRT, and it specifically targets applications intended for "modern" Windows (Windows 8 and later). There's another effort underway at Microsoft for making the older Win32 API more C++-friendly, but it isn't documented nearly as well.
  • How to use C++ HANDLE event
    2 projects | /r/cpp_questions | 25 Jan 2022
    There is a similar project for C++, but it sadly seems to be dead already. The last commit was one year ago.
  • [Belay the C++] windows.h breaks the STL (and my will to live)
    9 projects | /r/cpp | 11 May 2021
    not that hard to wrap windows.h and undef the annoying stuff, and only a handful of files in your codebase will include it anyway. on the other hand stuff like this looks extremely worse and exactly like the kind of c++ that is hard banned in gamedev codebases
  • Microsoft is working on making the Win32 api available for use in modern C++
    5 projects | /r/cpp | 21 Jan 2021
    They are, actually, it's linked from the article: https://github.com/microsoft/cppwin32

imgui

Posts with mentions or reviews of imgui. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-06.
  • Using raylib with Dear ImGui: Game Dev Debugging UI
    5 projects | dev.to | 6 Apr 2024
    include(cmake/CPM.cmake) function(raylib_imgui_setup_dependencies) message(STATUS "Include Dear ImGui") FetchContent_Declare( ImGui GIT_REPOSITORY https://github.com/ocornut/imgui GIT_TAG 277ae93c41314ba5f4c7444f37c4319cdf07e8cf) # v1.90.4 FetchContent_MakeAvailable(ImGui) FetchContent_GetProperties(ImGui SOURCE_DIR IMGUI_DIR) add_library( imgui STATIC ${imgui_SOURCE_DIR}/imgui.cpp ${imgui_SOURCE_DIR}/imgui_draw.cpp ${imgui_SOURCE_DIR}/imgui_widgets.cpp ${imgui_SOURCE_DIR}/imgui_tables.cpp) target_include_directories(imgui INTERFACE ${imgui_SOURCE_DIR}) include(cmake/CPM.cmake) message(STATUS "Include dbg-macro") cpmaddpackage( "gh:sharkdp/dbg-macro#fb9976f410f8b29105818b20278cd0be0e853fe8" )# v0.5.1 message(STATUS "Include fmtlib") cpmaddpackage("gh:fmtlib/fmt#e69e5f977d458f2650bb346dadf2ad30c5320281" )# 10.x message(STATUS "Include raylib") cpmaddpackage("gh:raysan5/raylib#ae50bfa2cc569c0f8d5bc4315d39db64005b1b0" )# v5.0 message(STATUS "Include spdlog") cpmaddpackage("gh:gabime/spdlog#7c02e204c92545f869e2f04edaab1f19fe8b19fd" )# v1.13.0 message(STATUS "Include rlImGui") FetchContent_Declare( rlImGui GIT_REPOSITORY https://github.com/raylib-extras/rlImGui GIT_TAG d765c1ef3d37cf939f88aaa272a59a2713d654c9) FetchContent_MakeAvailable(rlImGui) FetchContent_GetProperties(rlImGui SOURCE_DIR RLIMGUI_DIR) add_library(rlimgui STATIC ${rlimgui_SOURCE_DIR}/rlImgui.cpp) target_link_libraries(rlimgui PRIVATE imgui raylib) target_include_directories(rlimgui INTERFACE ${rlimgui_SOURCE_DIR}) endfunction()
  • Ask HN: Fastest cross-platform GUI stack/strategy
    3 projects | news.ycombinator.com | 18 Mar 2024
  • Immediate Mode GUI Programming
    15 projects | news.ycombinator.com | 15 Jan 2024
    Immediate mode is a fuzzy concept, as witnessed by this writeup: https://github.com/ocornut/imgui/wiki/About-the-IMGUI-paradi...
  • Nebula is an open-source and free-to-use modern C++ game engine
    6 projects | news.ycombinator.com | 9 Jan 2024
  • Black Triangles
    1 project | news.ycombinator.com | 26 Dec 2023
    It's fun to see the evolution in e.g. these examples of image loading for Dear Imgui:

    https://github.com/ocornut/imgui/wiki/Image-Loading-and-Disp...

    DirectX9 will even load the image for you, DirectX11 okay we get a few more structures to fill out, DirectX12 is where it goes off the rails and we are filling out a bunch of UNKNOWN DONT_CARE JUST_DO_IT. Then of course Vulkan is the one that gets the big fat "this probably won't actually work for you" warning.

    I understand whats happening, but you know sometimes I just want to display a fucking image.

  • Dear ImGui: Bloat-free Graphical User interface with minimal dependencies
    10 projects | news.ycombinator.com | 20 Dec 2023
    ImGui is engine/GPU agnostic

    Themeing isn't a just a retained mode thing, you can do wonders with immediate UIs, even thought (dear)ImGui doesn't provide much, you can still do wonders: https://github.com/ocornut/imgui/issues/707#issuecomment-362...

    More on that topic: https://www.youtube.com/watch?v=Z1qyvQsjK5Y

  • Where do I start to learn C++ for a game development
    2 projects | /r/gamedev | 10 Dec 2023
    Bonus: If you want to make desktop app with UI, then this is another great C++ library and it's also simple to learn as well. https://github.com/ocornut/imgui.
  • GUI library for fast prototyping
    3 projects | /r/rust | 6 Dec 2023
    AFAIK the Rust equivalent to C++'s Dear ImGui is egui.
  • Stretching myself thin with Dear ImGui projects
    2 projects | dev.to | 28 Nov 2023
    They use a Dear ImGui, a C++ GUI library.
  • PCSX2 Disables Wayland Support
    7 projects | news.ycombinator.com | 26 Nov 2023
    Aside from bugs and driver issues, Wayland has some unfortunate design limitations. For example, Dear ImGui multi-viewports don't work because "Wayland doesn't let application read or write windows positions."

    https://github.com/ocornut/imgui/wiki/Multi-Viewports

    This is a feature available on Windows, macOS, and of course X11. Making choices like this means desktop Linux becomes even more of a weird island that nobody wants to support.

What are some alternatives?

When comparing cppwin32 and imgui you can also consider the following projects:

winapi - Windows API declarations without <windows.h>, for internal Boost use.

wxWidgets - Cross-Platform C++ GUI Library

wil - Windows Implementation Library

nuklear - A single-header ANSI C immediate mode cross-platform GUI library

STL - MSVC's implementation of the C++ Standard Library.

NanoGUI - Minimalistic GUI library for OpenGL

win32metadata - Tooling to generate metadata for Win32 APIs in the Windows SDK.

GTK+ - Read-only mirror of https://gitlab.gnome.org/GNOME/gtk

go-figure - Prints ASCII art from text.

egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

EA Standard Template Library - EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.

CEGUI