Skip to main content
Version: v22.11

Build From Source on Windows - Visual Studio

Please visit the supported platforms page to see the Visual Studio versions currently supported in PcapPlusPlus.

Prerequisites​

In order to build PcapPlusPlus on Windows with Visual Studio you need the following components:

  1. A supported version of Microsoft Visual Studio
  2. WinPcap developer's pack OR Npcap SDK - containing the wpcap library PcapPlusPlus is linking with plus relevant h files.
    1. WinPcap developer's pack can be downloaded from here: https://www.winpcap.org/devel.htm
    2. Npcap SDK can be downloaded from here: https://nmap.org/npcap/#download
  3. In many cases you also need to download and install:
    1. Microsoft Visual C++ Redistributable for your version of Visual Studio
    2. Microsoft Visual C++ 2010 Redistributable
  4. OPTIONAL - download Zstd libraries if you wish to enable PCAPNG streaming compression support

Visual Studio project structure​

After configuration is complete there are 3 Visual Studio solutions:

  • mk\[vs_version]\PcapPlusPlus.sln - contains PcapPlusPlus libraries (Common++, Packet++ and Pcap++) and unit-tests projects
  • mk\[vs_version]\PcapPlusPlus-Examples.sln - contains all PcapPlusPlus examples. Requires PcapPlusPlus.sln to be built first
  • mk\[vs_version]\Tutorials.sln - contains all PcapPlusPlus tutorial examples. Requires PcapPlusPlus.sln to be built first
What is [vs_version]?

[vs_version] can be either vs2015, vs2017 or vs2019 and is determined during the configuration process.

PcapPlusPlus Visual Studio solution

PcapPlusPlus Visual Studio example solution

All solutions support both 32-bit (x86) and 64-bit (x64) configurations as well as Debug and Release modes. So there are 4 supported modes:

  • x86|Debug
  • x86|Release
  • x64|Debug
  • x64|Release

Configuration​

Before opening the solution (.sln) files please run the configure-windows-visual-studio.bat batch file from PcapPlusPlus main directory. This script configures the solution and project files according to the selected version of Visual Studio. It also creates a Visual Studio properties file called PcapPlusPlusPropertySheet.props that contains paths for 3rd-party libraries being used to build PcapPlusPlus.

Ths script has two modes of operation:

  • Wizard mode - the script will walk you through the paths and parameters you need to provide
  • Command line switches mode - all parameters are provided in the script command line

Wizard mode​

In wizard mode the script will ask you for the requested version of Visual Studio and the locations of WinPcap developer's pack / Npcap SDK. Here is an example:

C:\PcapPlusPlus>configure-windows-visual-studio.bat

***********************************************
PcapPlusPlus Visual Studio configuration script
***********************************************

Choose Visual Studio version.

Currently supported options are: vs2015, vs2017 or vs2019: vs2019


WinPcap or Npcap SDK is required for compiling PcapPlusPlus.
For downloading WinPcap SDK (developer's pack) please go to https://www.winpcap.org/devel.htm
For downloading Npcap SDK please go to https://nmap.org/npcap/#download

Please specify WinPcap/Npcap SDK path: C:\WpdPack



PcapPlusPlus Visual Studio configuration is complete. Files created (or modified): PcapPlusPlusPropertySheet.props, Arping.vcxproj,
ArpSpoofing.vcxproj, Common++.vcxproj, DNSResolver.vcxproj, DnsSpoofing.vcxproj, HttpAnalyzer.vcxproj, IcmpFileTransfer-catcher.vcxproj,
IcmpFileTransfer-pitcher.vcxproj, IPDefragUtil.vcxproj, IPFragUtil.vcxproj, LightPcapNg.vcxproj, Packet++.vcxproj, Packet++Test.vcxproj,
Pcap++.vcxproj, Pcap++Test.vcxproj, PcapPrinter.vcxproj, PcapSearch.vcxproj, PcapSplitter.vcxproj, SSLAnalyzer.vcxproj, TcpReassembly.vcxproj,
TLSFingerprinting.vcxproj, Tutorial-HelloWorld.vcxproj, Tutorial-LiveTraffic.vcxproj, Tutorial-PacketCraftAndEdit.vcxproj, Tutorial-PacketParsing.vcxproj,
Tutorial-PcapFiles.vcxproj

Command line switches mode​

In this mode you need to provide the requested Visual Studio version as well as the paths as script params. You can use the --help switch to query these switches:

C:\PcapPlusPlus>configure-windows-visual-studio.bat --help

***********************************************
PcapPlusPlus Visual Studio configuration script
***********************************************


Help documentation for configure-windows-visual-studio.bat
This script has 2 modes of operation:
1) Without any switches. In this case the script will guide you through using wizards
2) With switches, as described below

Basic usage: configure-windows-visual-studio.bat [-h] -v VS_VERSION -w PCAP_SDK_DIR

The following switches are recognized:
-v|--vs-version --Set Visual Studio version to configure. Must be one of: vs2015, vs2017, vs2019
-w|--pcap-sdk --Set WinPcap/Npcap SDK directory
-z|--zstd-sdk --Set ZStd SDK directory
-h|--help --Display this help message and exits. No further actions are performed

Here is an example:

C:\PcapPlusPlus>configure-windows-visual-studio.bat --vs-version 2019 --pcap-sdk C:\Npcap-SDK

***********************************************
PcapPlusPlus Visual Studio configuration script
***********************************************


PcapPlusPlus Visual Studio configuration is complete. Files created (or modified): PcapPlusPlusPropertySheet.props, Arping.vcxproj,
ArpSpoofing.vcxproj, Common++.vcxproj, DNSResolver.vcxproj, DnsSpoofing.vcxproj, HttpAnalyzer.vcxproj, IcmpFileTransfer-catcher.vcxproj,
IcmpFileTransfer-pitcher.vcxproj, IPDefragUtil.vcxproj, IPFragUtil.vcxproj, LightPcapNg.vcxproj, Packet++.vcxproj, Packet++Test.vcxproj,
Pcap++.vcxproj, Pcap++Test.vcxproj, PcapPrinter.vcxproj, PcapSearch.vcxproj, PcapSplitter.vcxproj, SSLAnalyzer.vcxproj, TcpReassembly.vcxproj,
TLSFingerprinting.vcxproj, Tutorial-HelloWorld.vcxproj, Tutorial-LiveTraffic.vcxproj, Tutorial-PacketCraftAndEdit.vcxproj, Tutorial-PacketParsing.vcxproj,
Tutorial-PcapFiles.vcxproj

Here are the available switches:

OptionDescription
-v , --vs-versionVisual Studio version to configure.
Currently supported versions are: vs2015, vs2017, vs2019
-w , --pcap-sdkPath to WinPcap Developer Pack (WpdPack) OR Npcap SDK
-z , --zstd-sdkPath to Zstd SDK directory. This is an optional parameter that is required only if using Zstd for PCAPNG streaming compression
-h , --helpDisplay the help message and exit. No further actions are performed

Build the code​

  • Build mk\[vs_version]\PcapPlusPlus.sln first to get PcapPlusPlus libraries and unit-tests
  • Then you can choose to build mk\[vs_version]\PcapPlusPlus-Examples.sln to get PcapPlusPlus examples
  • You can also choose to build mk\[vs_version]\Tutorials.sln to see the tutorial examples

You can build these 3 solutions using either Visual Studio IDE or MSBuild.

Running tests​

PcapPlusPlus contains a set of test-cases you can run to make sure that everything works correctly on your system. This guide contains detailed instructions on how to run them.