# Windows Tutorial

## Prerequisites

> 
> 
> - Reference the [C++ Tutorial](https://docs.qualcomm.com/doc/80-63442-2/topic/cplus_plus_tutorial.html) and [C Tutorial](https://docs.qualcomm.com/doc/80-63442-2/topic/c_tutorial.html) for more detail
> - Prepare the input data and dlc from [Running the Inception v3 Model in Windows](https://docs.qualcomm.com/doc/80-63442-2/topic/tutorial_inceptionv3_win.html)
> 
> 
> 
> Note
> 
> 
> $SNPE\_ROOT is the full path to Qualcomm® Neural Processing SDK.
> 
> 
> List of all the sample apps:
> 
> - C++ Sample Code Location: $SNPE\_ROOT/examples/SNPE/NativeCpp/SampleCode\_CPP
> - - C Sample Code Locations :
>     - - $SNPE\_ROOT/examples/SNPE/NativeCpp/SampleCode\_CAPI/ITensor
>     - $SNPE\_ROOT/examples/SNPE/NativeCpp/SampleCode\_CAPI/UserBuffer
>     - $SNPE\_ROOT/examples/SNPE/NativeCpp/SampleCode\_CAPI/MemoryMappedUserBuffer
>     - $SNPE\_ROOT/examples/SNPE/NativeCpp/SampleCode\_CAPI/Psnpe/OutputAsyncMode
>     - $SNPE\_ROOT/examples/SNPE/NativeCpp/SampleCode\_CAPI/Psnpe/SyncMode
> 
> 
> 
> Each of the above folders generates a binary upon compilation.
> 
> 
> All the above support x64 and ARM64 on windows, except MemoryMappedUserBuffer which only supports ARM64.

## Introduction

> 
> 
> This tutorial demonstrates how to build a C++ sample application that can execute neural network models on the Windows PC or Windows device.
> 
> 
> The steps for building and executing the CAPI sample are the same. Simply replace **SampleCode\_CPP** with one of the examples in SampleCode\_CAPI, e.g. **SampleCode\_CAPI/ITensor**.
> 
> 
> Note
> 
> 
> While this sample code does not do any error checking, it is strongly recommended that users check for errors when using the Qualcomm® Neural Processing SDK APIs.

## Limitations on Windows

> 
> 
> - The Qualcomm® Neural Processing SDK DLL is built with the multithreaded, static version of the runtime library (/MT), but also specifies to use the dynamic version of libucrt.
> - Furthermore, because it passes STL objects across the DLL boundary, the user’s code cannot be built with Debug runtime (/MTd)

## Setup Visual Studio

> 
> 
> Tested Build Environment:
> 
> - Visual Studio 2022 17.4
> - MSVC v143 C++ x86 build tools - 14.34
> - MSVC v143 ARM64 build tools - 14.34
> - Windows SDK 10.0.22621.0
> 
> 
> 
> There are several steps to setup the project.
> 
> 
> Note
> 
> 
> $SNPE\_ROOT is the full path to Qualcomm® Neural Processing SDK, need to register a system environment variable to use it in VS directly.
> 
> - Create an empty project
> - Unzip the SDK
> - Add all .cpp and .hpp files in `$SNPE_ROOT/examples/SNPE/NativeCpp/SampleCode_CPP` to **Source Files** and **Header Files** in **Solution Explorer**, respectively.
> 
> 
> 
> ![VS_add_source](data:image/png;base64,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)
> 
> - **Right click on Solution -&gt; Properties**, Change the configuration to **Release/x64**
> - Go to **Properties -&gt; Configuration Manager** and change all active configurations to **Release/x64**
> - Also Add ARM64 configuration to build the executable for ARM64
> 
> 
> 
> ![VS_configuration](data:image/png;base64,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)

## Link with SNPE.dll

> 
> 
> - Go to **Properties -&gt; C/C++ -&gt; Additional Include Directory**, edit and add include path: **$SNPE\_ROOT/include/SNPE**
> - Go to **Properties -&gt; Linker -&gt; Input -&gt; Additional Dependencies**, edit and add **SNPE.lib**
> - - Go to **Properties -&gt; Linker -&gt; General -&gt; Additional Library Directory**, edit and add path to SNPE.dll:
>     - - For x64, add **$SNPE\_ROOT/lib/x86\_64-windows-msvc**
>     - For ARM64, add **$SNPE\_ROOT/lib/aarch64-windows-msvc**
> 
> 
> 
> Note
> 
> 
> $SNPE\_ROOT can be replaced to the full path to SDK

## Using CMake to Build SampleCode

> 
> 
> We also provide another way that using CMake to build SampleCode
> 
> 
> Note
> 
> 1. Need to install “CMake Tools for Windows”
> 2. Replace $SNPE\_ROOT to full path if SNPE\_ROOT is not in the system environment variables
> 
> - Unzip the SDK
> - Open the developer command prompt for VS
> - Follow the instructions below
> 
> 
> 
> > 
> > 
> > - cd $SNPE\_ROOT/examples/SNPE/NativeCpp/SampleCode\_CPP
> >     - mkdir build & cd build
> >     - cmake ../ -A &lt;x64, ARM64&gt; [-DBUILD\_WITH\_VCRUNTIME=ON]
> > 
> > 
> > 
> > > 
> > > 
> > > - -A: x64 or ARM64, choose the platform you want to build
> > >         - -DBUILD\_WITH\_VCRUNTIME: Default OFF. Turning ON will build snpe-sample with Microsoft MSVC static runtime libraries
> >     - cmake -\-build ./ -\-config Release (or open the .sln in Visual Studio and build)

## Build and run a network in Visual Studio on x64

> 
> 
> Taking Inception\_v3 as an example:
> 
> - Skip this if build by CMake, Go to **Properties -&gt; Build Events -&gt; Post-Build Event**, edit and add **copy /Y  “$SNPE\_ROOT/lib/x86\_64-windows-msvc” “$(OutDir)”**
> - Go to **Properties -&gt; Debugging -&gt; Command Argument**, edit and add command arguments:
> 
> 
> 
> > 
> > 
> > - Set Commandline Arguments to:
> > 
> > 
> > --container path/to/inception_v3/dlc/inception_v3.dlc --input_list path/to/inception_v3/data/cropped/raw_list.txt --output_dir output/
> >             Copy to clipboard
> >     - Set Working Directory to path/to/inception\_v3
> - Click the **Local Windows Debugger** and observe the output which should resemble the following:
> 
> 
> 
> ![VS_x64_run](data:image/png;base64,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)

## Build and run a network on ARM64

> 
> 
> Again taking Inception\_v3 as an example:
> 
> 1. Build the exe with ARM64 configuration
> 2. Copy executable file, SNPE.dll and inception\_v3 directory to the device
> 3. Setup DSP Runtime: please refer to [Running on Windows using DSP Runtime](https://docs.qualcomm.com/doc/80-63442-2/topic/tutorial_inceptionv3_win.html)
> 4. Open the cmd and type:
> 
> 
> 
> > 
> > 
> > $(EXE NAME) --container path/to/inception_v3/dlc/inception_v3.dlc --input_list path/to/inception_v3/data/cropped/raw_list.txt --output_dir output [--runtime dsp]
> >         Copy to clipboard
> 
> 
> 
> 
> > 
> > 
> > - - If “VCRUNTIME140.dll was not found” or any error like “the application was unable to start” occurs, it can be fixed either by:
> >     - 1. Install **Microsoft Visual C++ Redistributable** on the device
> >     2. Refer to [Using CMake to Build SampleCode](https://docs.qualcomm.com/doc/80-63442-2/topic/build_samplecode_windows.html#using-cmake-to-build-samplecode) to build snpe-sample with static VCRuntime libraries
> > - When executing snpe-sample in powershell, it will not display any error for VCRUNTIME issues. If snpe-sample quits without any message, check above VCRUNTIME solutions.

Last Published: Oct 02, 2025

[Previous Topic
Android Tutorial](https://docs.qualcomm.com/bundle/publicresource/80-63442-2/topics/android_tutorial.md) [Next Topic
UDO Tutorial](https://docs.qualcomm.com/bundle/publicresource/80-63442-2/topics/tutorial_inceptionv3_udo.md)