Use a small public header (kora/auth.hpp) and link KoraClient.lib, similar to KeyAuth-style SDKs. Your main stays short; HTTP and HWID live in the static library.
The SDK archive includes include/kora/auth.hpp and src/kora_client.cpp. Add the implementation to a static library project in your solution, or compile the .cpp into your executable.
“Full” bundle also includes lib/x64/Release/KoraClient.lib (MSVC v143, x64 Release) when we ship it from our build. Rebuild the static library yourself if you use a different toolset or need Win32.
Point your include path at the include folder, link against KoraClient.lib (and ensure WinHTTP / Advapi32 are linked — our .cpp uses #pragma comment(lib, …) for that).
#include <kora/auth.hpp>
#include <iostream>
#include <string>
// base URL, optional path prefix, optional app secret (if your server expects it)
static kora::App KoraApp("https://kora.quest", "", "");
int main() {
std::string username, key;
std::cout << "Username: ";
std::getline(std::cin, username);
std::cout << "License key: ";
std::getline(std::cin, key);
if (KoraApp.license(username, key))
std::cout << "OK\n";
else
std::cerr << "Failed\n";
return 0;
}
For a smoke test without KoraClient.lib, compile one .cpp with cl /EHsc /std:c++17 kora_verify_min.cpp /link winhttp.lib (username + key, no HWID in body — the server can bind the session to the client IP).