Skip to content
atrexus edited this page May 17, 2026 · 2 revisions

wincpp

wincpp is a lightweight, header-only x64 Win32 wrapper for C++23.

It provides small C++ interfaces for:

  • processes
  • modules, sections, exports, and MSVC RTTI
  • memory regions, allocations, reads, writes, and protection changes
  • byte patterns and scanners
  • threads and scoped suspension
  • visible process windows

Use the aggregate header for normal use:

#include <wincpp/wincpp.hpp>

Start Here

Quick Example

#include <print>
#include <wincpp/wincpp.hpp>

int main()
{
    const auto process = wincpp::process_t::current();
    const auto& main = process->module_factory.main_module();

    std::println("{} ({})", process->name(), process->id());
    std::println("{} @ 0x{:X}", main.name(), main.address());
}

Error Model

Throwing APIs throw wincpp::core::error.

Non-throwing helpers return wincpp::core::result_t<T>, which is an alias for std::expected<T, wincpp::core::error>.

Clone this wiki locally