Okay, setting up a Drogon project in Visual Studio 2022 involves creating a VS project, configuring dependencies (like Drogon, often via vcpkg), and ensuring resource files (like views and config) are copied correctly.
Here are the core code files. You'll need to create a Visual Studio project and configure it as described below the code.
Visual Studio 2022 Setup Steps:
Install Drogon: The recommended way is using vcpkg
.
vcpkg integrate install
in your vcpkg directory.vcpkg install drogon[core]:x64-windows
(or x86-windows
if needed). Add features like ssl
or postgres
if required: vcpkg install drogon[core,ssl]:x64-windows
.Create Project:
CoffeeShop
) and choose a location.Add Files:
main.cc
and controllers/HomeController.cc
.controllers/HomeController.h
.CoffeeShop/views
and CoffeeShop/controllers
. Place the .h
, .cc
, and .csp
files in their respective locations as shown in the file paths above.config.json
and the views
folder (containing index.csp
) to the project root directory (CoffeeShop/
). In Solution Explorer, you might want to right-click the Project -> Add -> Existing Item... and add config.json
. You can also add index.csp
this way, perhaps creating a "views" filter in Solution Explorer first.Configure Project Properties:
ISO C++17 Standard (/std:c++17)
or later.vcpkg integrate install
, these should be set automatically. If not, you'll need to manually add the include
directory from your Drogon installation here and the lib
directory under Linker -> General -> Additional Library Directories.Drogon.lib
, ws2_32.lib
, crypt32.lib
, bcrypt.lib
, and potentially others depending on your Drogon build features (like libssl.lib
, libcrypto.lib
for SSL). Vcpkg handles this automatically.Copy Resources Post-Build:
Go to Build Events -> Post-Build Event.
In the Command Line box, add commands to copy the views
directory and config.json
to the output directory where the .exe
will be created. $(OutDir)
is the VS macro for the output directory (e.g., x64/Debug/
).
cmd
xcopy "(OutDir)views" /E /I /Y /D
copy /Y "(OutDir)"
xcopy ... /E /I /Y /D
: Copies the views
directory and its contents (/E
), creates the destination directory if needed (/I
), overwrites existing files without prompting (/Y
), and only copies newer files (/D
).copy /Y ...
: Copies config.json
, overwriting without prompting (/Y
).Build and Run:
http://127.0.0.1:8848
(or the address/port specified in your config.json
). You should see the "Welcome to The Coffee Corner!" page._Okay, let's adapt the project setup for Visual Studio 2022 using Conan as the package manager.
First, the core C++ code files remain the same.
Visual Studio 2022 + Conan Setup Steps:
Install Conan: Follow the official Conan installation guide (https://docs.conan.io/2/installation.html). Ensure Conan is added to your system's PATH.
Create Project Structure:
DrogonCoffeeShop
).CoffeeShop
folder.main.cc
, config.json
, and conanfile.txt
directly inside the CoffeeShop
folder.CoffeeShop/controllers
and place HomeController.h
and HomeController.cc
inside it.CoffeeShop/views
and place index.csp
inside it.Create Visual Studio Project:
DrogonCoffeeShop
) and the Solution Name to something like DrogonCoffeeShop
. Set the Project Name to CoffeeShop
. This ensures the .sln
file is outside the CoffeeShop
folder, which works well with Conan layouts.Add Files to VS Project:
CoffeeShop
project.main.cc
and controllers/HomeController.cc
.controllers/HomeController.h
.config.json
, conanfile.txt
, and views/index.csp
. You might want to create filters (virtual folders) in Solution Explorer for views
and config
.Install Conan Dependencies:
CoffeeShop
directory (where conanfile.txt
is located).Example for Debug x64: bash conan install . --output-folder=conan-build --build=missing -s build_type=Debug -s compiler.runtime=MDd
Example for Release x64:
conan install . --output-folder=conan-build --build=missing -s build_type=Release -s compiler.runtime=MD
conan install . --output-folder=conan-build --build=missing -s build_type=Release -s compiler.runtime=MD
--output-folder=conan-build
: Specifies where Conan should put generated files (like .props
).
--build=missing
: Tells Conan to build dependencies from source if pre-built binaries are not available for your configuration.
-s build_type=...
: Matches the VS configuration (Debug/Release).
-s compiler.runtime=...
: Matches the VS Runtime Library setting (Multi-threaded Debug DLL (MDd
) for Debug, Multi-threaded DLL (MD
) for Release). Adjust if you use static runtimes (MTd
/MT
).
conan_toolchain.props
and conandeps.props
inside the CoffeeShop/conan-build
folder.Integrate Conan with VS Project:
CoffeeShop
project in Solution Explorer -> Properties.conan install
command.$(ConanIncludeDirectories)
and $(ConanLibDirectories)
. This happens because Visual Studio automatically detects and imports .props
files placed next to the .vcxproj
file if they are named correctly.CoffeeShop/conan-build
and select conan_toolchain.props
. Repeat for conandeps.props
. Do this for each configuration (Debug/Release) you intend to build.ISO C++17 Standard (/std:c++17)
or later.-s compiler.runtime=...
setting used during conan install
(e.g., Multi-threaded Debug DLL (/MDd)
for Debug).Copy Resources Post-Build:
views
directory and config.json
to the output directory ($(OutDir)
).
xcopy "$(ProjectDir)views" "$(OutDir)views\" /E /I /Y /D
copy /Y "$(ProjectDir)config.json" "$(OutDir)"
xcopy "$(ProjectDir)views" "$(OutDir)views\" /E /I /Y /D
copy /Y "$(ProjectDir)config.json" "$(OutDir)"
Build and Run:
http://127.0.0.1:8848
in your browser._