GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - microsoft/cppwinrt: C++/WinRT

BranchesTags
Open more actions menu

Latest commit

 

History

639 Commits
639 Commits

Folders and files

NameName
Last commit message
Last commit date
.config
.config
 
 
.gdn
.gdn
 
 
.github
.github
 
 
.pipelines
.pipelines
 
 
cppwinrt
cppwinrt
 
 
docs
docs
 
 
fast_fwd
fast_fwd
 
 
mingw-support
mingw-support
 
 
natvis
natvis
 
 
nuget
nuget
 
 
prebuild
prebuild
 
 
scratch
scratch
 
 
strings
strings
 
 
test
test
 
 
vsix
vsix
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.runsettings
.runsettings
 
 
CMakeLists.txt
CMakeLists.txt
 
 
Directory.Build.Props
Directory.Build.Props
 
 
Directory.Packages.props
Directory.Packages.props
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
build_nuget.cmd
build_nuget.cmd
 
 
build_prior_projection.cmd
build_prior_projection.cmd
 
 
build_projection.cmd
build_projection.cmd
 
 
build_test_all.cmd
build_test_all.cmd
 
 
build_vsix.cmd
build_vsix.cmd
 
 
compile_tests.cmd
compile_tests.cmd
 
 
cppwinrt.sln
cppwinrt.sln
 
 
cross-mingw-toolchain.cmake
cross-mingw-toolchain.cmake
 
 
nuget.config
nuget.config
 
 
prepare_versionless_diffs.cmd
prepare_versionless_diffs.cmd
 
 
run_tests.cmd
run_tests.cmd
 
 

Repository files navigation

The C++/WinRT language projection

C++/WinRT is an entirely standard C++ language projection for Windows Runtime (WinRT) APIs, implemented as a header-file-based library, and designed to provide you with first-class access to the modern Windows API. With C++/WinRT, you can author and consume Windows Runtime APIs using any standards-compliant C++17 compiler.

  • Documentation: https://aka.ms/cppwinrt
  • NuGet package: http://aka.ms/cppwinrt/nuget
  • Visual Studio extension: http://aka.ms/cppwinrt/vsix
  • Wikipedia: https://en.wikipedia.org/wiki/C++/WinRT

Building C++/WinRT

Don't build C++/WinRT yourself - just download the latest version here: https://aka.ms/cppwinrt/nuget

Working on the compiler

If you really want to build it yourself, the simplest way to do so is to run the build_test_all.cmd script in the root directory. Developers needing to work on the C++/WinRT compiler itself should go through the following steps to arrive at an efficient inner loop:

  • Open a dev command prompt pointing at the root of the repo.
  • Open the cppwinrt.sln solution.
  • Choose a configuration (x64, x86, Release, Debug) and build projects as needed.

If you are working on an ARM64 specific issue from an x64 or x86 host, you will need to instead:

  • Open the cppwinrt.sln solution
  • Build the x86 version of the "cppwinrt" project first
  • Switch to your preferred configuration and build the test binaries and run them in your test environment

Comparing Outputs

Comparing the output of the prior release and your current changes will help show the impact of any updates. Starting from a dev command prompt at the root of the repo after following the above build instructions:

  • Run build_projection.cmd in the dev command prompt
  • Run build_prior_projection.cmd in the dev command prompt as well
  • Run prepare_versionless_diffs.cmd which removes version stamps on both current and prior projection
  • Use a directory-level differencing tool to compare _build\$(arch)\$(flavor)\winrt and _reference\$(arch)\$(flavor)\winrt

Testing

This repository uses the Catch2 testing framework.

  • From a Visual Studio command line, you should run build_tests_all.cmd to build and run the tests. To Debug the tests, you can debug the associated _build\$(arch)\$(flavor)\<test>.exe under the debugger of your choice.
  • Optionally, you can install the Catch2Adapter to run the tests from Visual Studio.

About

C++/WinRT

Resources

Readme
MIT license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

1.9k stars

Watchers

100 watching

Forks

289 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.