-->
High speed Many devices supported Enhanced programming interface Advanced software Comfortable user interface
The Win32 API (also called the Windows API) is the original platform for native C/C++ Windows applications that require direct access to Windows and hardware. It provides a first-class development experience without depending on a managed runtime environment like .NET and WinRT (for UWP apps for Windows 10). This makes the Win32 API the platform of choice for applications that need the highest level of performance and direct access to system hardware.
Tech support scams are an industry-wide issue where scammers trick you into paying for unnecessary technical support services. You can help protect yourself from scammers by verifying that the contact is a Microsoft Agent or Microsoft Employee and that the phone number is an official Microsoft global customer service number. Geany is a powerful, stable and lightweight programmer's text editor that provides tons of useful features without bogging down your workflow. It runs on Linux, Windows and MacOS is translated into over 40 languages, and has built-in support for more than 50 programming languages. Download Geany 1.37.1 ».
Note
This documentation covers how to create desktop Windows apps with the Win32 API. The Win32 API is one of several app platforms you can use to build desktop Windows apps. For more info about other app platforms, see Choose your platform.
Get set up
Follow these instructions and start creating desktop apps for Windows 10 that use the Win32 API.
- Download or update Visual Studio 2019. If you don't already have Visual Studio 2019, you can install the free Microsoft Visual Studio Community 2019. When you install Visual Studio, make sure to select the Desktop development with C++ option. For download links, see our Downloads page.NoteWhen you install Visual Studio, you can optionally select the .NET desktop development and Universal Windows Platform development options for access to other project types and app platforms for building desktop Windows apps.
- If you want to build your desktop app into an MSIX package and test or debug the packaged app on your development computer, you'll need to enable Developer Mode on your computer.
Note
For scripts you can use to set up your development computer and install other features or packages, check out this GitHub project.
Learn how to create desktop apps using the Win32 API
If you're new to building desktop apps using the Win32 API, the following tutorials and articles will help get you started.
Topic | Description |
---|---|
Create your first C++ Win32 app | This tutorial teaches you how to write a Windows program in C++ using Win32 and COM APIs. |
Create your first app using DirectX | This basic tutorial will get you started with DirectX app development. |
Programming Guide for 64-bit Windows | Describes programming for 64-bit versions of the Windows operating system. |
Using the Windows Headers | Provides an overview of some of the conventions used in the Windows header files. |
You can also browse the desktop app samples.
Modernize your desktop apps for Windows 10
If you have an existing desktop Win32 app, there are many features in the Universal Windows Platform (UWP) that you can use to deliver the best possible experience on Windows 10. For example, starting in Windows 10, version 1903, you can host UWP XAML controls in your desktop Win32 app using a feature called XAML Islands.
Most of these UWP features are available as modular components that you can adopt in your desktop app at your own pace without having to rewrite your entire application. You can enhance your existing desktop app by choosing which parts of Windows 10 and UWP to adopt.
For more information, see Modernize your desktop apps.
C++/WinRT
Optionally, you can configure your development computer to use C++/WinRT. C++/WinRT is an entirely standard modern C++17 language projection enables you to easily consume Windows Runtime APIs Windows Runtime (WinRT) APIs from your C++ Win32 desktop application. C++/WinRT is implemented as a header-file-based library.
To configure your project for C++/WinRT:
- For new projects, you can install the C++/WinRT Visual Studio Extension (VSIX) and use one of the C++/WinRT project templates included in that extension.
- For existing Windows desktop application projects, you can install the Microsoft.Windows.CppWinRT NuGet package in the project.
Programmation Windows 10 64-bit
For more details about these options, see this article.
What's new for Win32 APIs in Windows 10
To learn about new Win32 APIs that have been introduced in Windows 10, see what's new.
Get started with Win32 features and technologies
Win32 APIs exist for many features and technologies in Windows 10, including core user interface and windowing APIs, audio and graphics, and networking. For guidance and code samples about using these APIs, see our features and technologies index.
Related topics
More information about PRESTO
PRESTO is optimized for high speed, for example it programs and verifies a full PIC18F8720 in 6 seconds! (3 seconds for programming and 3 seconds for verification). Complete eCOG1 in less than 3 seconds.
Hundreds of devices are supported by the UP software and the list is growing continuously. Moreover, many other parts can be programmed using JTAG or other software for PRESTO. For detailed information, visit the page Supported Devices.
In-Circuit Serial Programming (ICSP) or In-System Programming (ISP) is a very beneficial and frequently used MCU feature. PRESTO directly supports this function using a dedicated connector and an included cable.
The target application device can be either powered by PRESTO (5 V nominally) or powered by an application within a voltage range of 3 to 5 V (with a ±10% tolerance, i.e. 2.7 to 5.5 V). The voltage range can be extended by two special headers - HPR3V3 (for 3.3 V output) and HPR1V2 (for 1.2 to 3.3 V support).
Overcurrent limitation on target supply and programming voltages remarkably reduces the risk of damaging parts because of operator error. Target supply overvoltage detection is also implemented.
The program UP supports PRESTO as well as other ASIX' programmers. It offers many advanced functions like projects, command line control, Windows message control, workspace setup including user keyboard shortcut definitions, serial number generation by various methods, etc. UP works in Windows XP/Vista/7/8/8.1/10 (32 and 64 bit) as well as in Linux (using Wine).
Devices with JTAG interface and eCOG microcontrollers are supported by dedicated programs JTAG SVF Player and eCOG Programmer, respectively. Microcontrollers with 32-bit ARM core are supported by OpenOCD and some of them also by easy-to-use Armine application. The advanced control of the PRESTO programmer can be made using a PRESTO .DLL Library.
Software upgrades are freely available for all users on the Internet. They contain new device support, new functions and algorithm updates if required.
Now with LINUX support (using WINE).
GO button allows the user to comfortably start the device programming, without the need for a PC keyboard or a mouse. LEDs indicate programmer status - green LED ON-LINE signals a working USB connection and yellow LED ACTIVE indicates that PRESTO is operating (programming, reading, ..). Microsoft excel tutorial windows 7.
PRESTO is powered by the USB bus, so there is no need for any additional supply adaptor.
PRESTO is small, lightweight and compact.
Programming Windows 10 Apps Location Location
To achieve a consistent colour scheme for our new products, we changed the PRESTO enclosure colour from light gray to light beige, the colour of the plastic reduction at the ICSP connector from dark grey to orange and the product name from red to orange. Of course, dimensions and weight (as well as the electronics) remained unchanged.
Compare the old and the new PRESTO version:
Click to open larger images. For more pictures goto to the ➜ PRESTO image gallery.
HPR1V2 - 1.2 to 3.3 V Level Shifter for PRESTO
HPR3V3 - 3.3 V Level Shifter for PRESTO
HPRAVR - PRESTO to AVR Connector Adapter Clip editor windows.
ICSPCAB8 - an additional/replacement in-system programming cable
FORTE - extremely fast and flexible High-Speed USB programmer
ISP2ZIF - a universal adapter with 40-pin DIP Zero-Insertion-Force socket