Recently, the development team behind the project rolled out a significant update. This update—codenamed "Harmony Bridge"—is a game-changer for engineers working at the intersection of portable C++ code and the Windows platform.
The updated module automatically generates a .def file for MSVC, ensuring that even C++ mangled names are correctly exported without needing extern "C" wrappers. The update adds native integration with Windows side-by-side (SxS) assemblies . You can now annotate your cross-platform CMakeLists.txt with version ranges: xplatcppwindowsdll updated
build/tools/xplatcpp_validate_dll.exe --dll build/Release/MyEngine.dll It will report if any symbols are unintentionally hidden or if the manifest is malformed. The xplatcppwindowsdll update has already been tested in three production environments. Use Case A: Game Engine Plugin System A mid-sized indie studio uses xplatcppwindowsdll to ship a C++ physics library as a DLL, loaded dynamically by a Unity game on Windows and Godot on Linux. The new update reduced their per-platform #ifdef code by 70% and allowed them to add ARM64 handheld support (e.g., ASUS ROG Ally) in under two days. Use Case B: Financial Tick Processing A trading firm wraps their cross-platform order management system in a DLL that gets called from Excel via VBA (yes, that still exists). The load-time profiling feature helped them discover a static mutex that was blocking initialization for 300ms. After fixing it, DLL load dropped to 12ms, improving spreadsheet responsiveness dramatically. Benchmarks The team behind xplatcppwindowsdll published before-and-after metrics using a 500k-line C++ codebase (compiled with MSVC 19.38, /O2): Recently, the development team behind the project rolled
In this article, we’ll dissect what xplatcppwindowsdll is, why the new update matters, and how you can leverage its features to build faster, safer, and truly cross-platform C++ binaries for Windows environments. For the uninitiated, xplatcppwindowsdll is a specialized build toolchain and library template designed to simplify the creation of Windows Dynamic Link Libraries (DLLs) from a single, cross-platform C++ codebase. The update adds native integration with Windows side-by-side
Set CMAKE_MSVC_RUNTIME_LIBRARY consistently across all projects. 🔴 Pitfall 2: C++ Exceptions Crossing DLL Boundaries Throwing an exception from a DLL and catching it in the main executable is unsafe if they aren’t compiled with the same compiler and EH flags. The updated toolchain optionally wraps all public functions with a std::error_code facade.
extern "C" XPLATCPP_PUBLIC int add(int a, int b) return a + b;
#ifdef _WIN32 #ifdef MYLIB_EXPORTS #define MYLIB_API __declspec(dllexport) #else #define MYLIB_API __declspec(dllimport) #endif #else #define MYLIB_API __attribute__((visibility("default"))) #endif class MYLIB_API MyClass ... ;