[[tutorials/net_open_frameworks|{{:openframeworks.png}}]] [[tutorials/cpp_cinder|{{ :logo_cinder_191x60_1_.png}}]]
====== Getting Started I (Hello World) ====== ===== Introduction ===== This tutorial includes all of the steps required to include GestureWorks Core in your C++ project. This will include downloading and unpacking GestureWorks, creating a Visual Studio project, linking in the GestureWorks files, and setting project directories for compilation. We will also discuss other options for developing with GestureWorks. Note that this process is valid for any C++ project involving GestureWorks and is not limited to any particular C++ framework. For this tutorial you will need the [[http://gestureworks.com/|GestureWorks Core]] multitouch framework; a [[http://files.gestureworks.com/downloads/Core/Trial/GestureworksCoreTrialSetup.exe|free trial]] is available. //NOTE: This tutorial applies to GestureWorks Core development in all third-party C++ development environment such as **openFrameworks** and **Cinder**.// Download the code for all of the **C++ & openframeworks** multitouch tutorials here:{{:tutorials:cpp_cinder:tutorials_cpp_openframeworks.zip|tutorials_cpp_openframeworks.zip}} Download the code for all of the **C++ & Cinder** multitouch tutorials here: {{:tutorials:cpp_cinder:tutorials_cpp_cinder.zip|}} ---- ===== Requirements ===== * GestureWorks Core License * Microsoft Windows 7, 8, or 10 * Microsoft Visual Studio (2012, 2013 or 2015, Community or Professional - 2012 required for openFrameworks) * Multitouch display device ---- ===== Process Overview ===== Estimated time to complete: **30 minutes** - [[tutorials:cpp_cinder:getting_started_1_hello_world#download_and_install_software_prerequisites|Download and install software prerequisites]] - [[tutorials:cpp_cinder:getting_started_1_hello_world#download_and_install_gestureworks_core_package|Download and install GestureWorks Core package]] - [[tutorials:cpp_cinder:getting_started_1_hello_world#create_a_new_c++_solution_in_visual_studio|Create a new C++ solution in Visual Studio]] - [[tutorials:cpp_cinder:getting_started_1_hello_world#add_gestureWorks_core_c++_bindings_to_solution|Add GestureWorks Core C++ bindings to solution]] - [[tutorials:cpp_cinder:getting_started_1_hello_world#compiler_settings|Compiler settings]] ---- ===== Process Detail ===== ====1. Download and install software prerequisites==== Microsoft Visual C++ 2012 Express, 2013 or 2015 Community must be downloaded and installed prior to continuing with the tutorial. * [[https://www.visualstudio.com/downloads/download-visual-studio-vs#d-2012-express|Visual Studio 2012 Express]] (Required for openFrameworks) * [[https://www.visualstudio.com/en-us/news/vs2013-community-vs.aspx|Visual Studio 2013 Community]] * [[https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx|Visual Studio 2015 Community]] Note that the Professional versions of these IDEs will also work. ====2. Download and install GestureWorks Core package==== The GestureWorks Core installer package -- GestureWorksCoreSetup.exe -- contains the main GestureWorksCore.dll files (the "native" DLLs), various bindings (C++ .NET, Python, etc.), and supporting documentation. GestureWorks Core must be licensed prior to use in any software project. - Download the GestureWorks Core Trial package from here. - Double-click the downloaded installer package GestureWorksCoreSetup.exe to install GestureWorks Core. GestureWorks Core consists of the GestureWorks Core DLLs as well as various tutorials, bindings, and documentation. **GestureWorksCore*.dlls** \GestureWorksCore\GestureWorksCore32.dll \GestureWorksCore\GestureWorksCore64.dll **C++ bindings** \GestureWorksCore\bindings\c++ **C++ tutorials** \GestureWorksCore\bindings\c++\tutorials ====3. Create a new C++ solution in Visual Studio==== Microsoft's Visual Studio makes it quick and easy to begin writing applications making use of the Windows API. First, create a new solution in Visual Studio 2013: - Click File → New Project - Under Installed Templates, click Visual C++ - Click Empty Project - Name the solution "Project1" - (optional) Click Browse... to select a location for the solution folder - Click Create directory for solution - Click OK {{ :tutorials:cpp_cinder:newproject.png?nolink |}} ====4. Add GestureWorks Core C++ bindings to solution==== Next, there are four files that need to be added to the solution. Right-click on the source files for Project1 in the Solution Explorer, then click Add → Existing Item {{ :tutorials:cpp_cinder:existingitem.png?nolink |}} Browse to the folder containing the downloaded GestureWorks Core C++ bindings. Select GestureWorksCore.cpp, GWCUtils.cpp, and their corresponding header files. Click the Add button. All of the required files for using GestureWorks should now be in your solution: {{ :tutorials:cpp_cinder:solutionexplorer.png?nolink |}} ==== 5. Compiler Settings ==== Now, we need to adjust the project settings to include the directory from which we just added the binding files: - Right-click and select Properties under Project1 - Select VC++ Directories under the Configuration Properties tab - In the Include Directories row, click the right column, and select Edit from the drop-down menu. {{ :tutorials:cpp_cinder:editproperties.png?nolink |}} From here, click the folder button to add a new line. You can now either copy and paste or browse to the directory that contains the bindings files (default is \GestureWorksCore\bindings\c++). Add this directory, click ok, and exit the dialog. ---- =====Review===== In this tutorial we installed GestureWorks Core and the prerequisites for developing with the GestureWorks Core C++ bindings, and created a solution that includes the C++ bindings code. From here we move on to [[tutorials:cpp_cinder:getting_started_2_hello_multitouch|C++ & Cinder: Getting Started II (Hello Multitouch)]] or [[tutorials:cpp_open_frameworks:getting_started_2_hello_multitouch|C++ & openFrameworks: Getting Started II (Hello Multitouch)]] in which we dig into actual source code, initializing GestureWorks Core and working with touch and gesture event data. ---- =====Other Development Options===== Use of the C++ bindings for GestureWorks Core is not limited to Visual Studio; the same steps followed here can be used with any IDE or build solution supporting C++ development. ---- Next tutorial: * openFrameworks: [[tutorials:cpp_open_frameworks:getting_started_2_hello_multitouch|C++ & openFrameworks: Getting Started II (Hello Multitouch)]] * Cinder: C++ & Cinder: [[tutorials:cpp_cinder:getting_started_2_hello_multitouch|C++ & Cinder: Getting Started II (Hello Multitouch)]]