C++/WinRT
Перейти к файлу
Raymond Chen 2d9ed4e308
Avoid spurious WINRT_NATVIS redefinition warning (#1044)
2021-10-21 09:52:05 -07:00
cppwinrt Support binding std::optional<T> implementation to IReference<T> parameters (#1030) 2021-09-30 12:53:58 -07:00
fast_fwd Fix CFG helper calling convention and simplify flow of call target address. (#678) 2020-07-03 16:23:55 -07:00
natvis Ingest updated winmd library to fix include/exclude regression (#969) 2021-06-29 23:08:18 -07:00
nuget Ignore MIDL files which are excluded from the build (#1019) 2021-09-16 21:44:11 -07:00
prebuild Revert "Revert "Build tweaks to simplify Win7 smoke testing (#471)"" 2020-01-15 08:35:21 -08:00
scratch C++20 coroutine support (#748) 2020-09-21 11:18:24 -07:00
strings Avoid spurious WINRT_NATVIS redefinition warning (#1044) 2021-10-21 09:52:05 -07:00
test Awaiting an already-completed IAsyncXxx does not consume stack in C++20 mode (#1040) 2021-10-21 09:50:19 -07:00
vsix Use v143 toolset on VS 2022 (#994) 2021-08-03 11:02:03 -07:00
.gitattributes Build (#478) 2020-01-16 09:16:13 -08:00
.gitignore Generate test failure output on abnormal termination (#1011) 2021-09-07 17:09:41 -07:00
CODE_OF_CONDUCT.md clean 2019-10-08 05:14:30 -07:00
LICENSE clean 2019-10-08 05:14:30 -07:00
README.md Update README.md 2021-01-02 08:51:52 -08:00
SECURITY.md clean 2019-10-08 05:14:30 -07:00
build_nuget.cmd Fix build 2020-07-03 18:34:57 -07:00
build_projection.cmd build 2019-10-11 09:06:48 -07:00
build_test_all.cmd C++20 ranges support (#900) 2021-03-29 10:47:25 -07:00
build_vsix.cmd Standalone and Component Visualizers/VSIXes (#823) 2020-12-14 21:02:28 -08:00
compile_tests.cmd port 2019-10-08 08:19:10 -07:00
cppwinrt.props Awaiting an already-completed IAsyncXxx does not consume stack in C++20 mode (#1040) 2021-10-21 09:50:19 -07:00
cppwinrt.sln Simplify use of `WINRT_NO_MODULE_LOCK` in DLLs (#1032) 2021-09-30 16:16:21 -07:00
run_tests.cmd Generate test failure output on abnormal termination (#1011) 2021-09-07 17:09:41 -07:00

README.md

Build status

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.

Building C++/WinRT

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

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.
  • Build the x64 Release configuration of the prebuild and cppwinrt projects only. Do not attempt to build anything else just yet.
  • Run build_projection.cmd in the dev command prompt.
  • Switch to the x64 Debug configuration in Visual Studio and build all projects as needed.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.