If running an ISO C++ 2 based application in debug mode raises an “access violation” error during the initial creation of the DDS Domain Participant, it may be that the ISO C++ 2 library needs to be recompiled for debug mode.
The history to this is that memory allocations are potentially different in release and debug mode and there can be issues when mixing the two across the application and API boundary. This may result in a memory alignment error when code in the API library is invoked – usually first done by creation of the DDS Domain Participant.
To avoid this, the DDS application and Vortex OpenSplice API libraries need to be compiled with the same configuration (i.e. both in release mode, or both in debug mode). That will guarantee comparability across that boundary.
Vortex OpenSplice provides a facility to manage this, called “rebuilding the custom libraries”:
In order for users are able to use a different compiler and/or switch between release and debug mode, Vortex OpenSplice provides source code and build files for the C++ APIs in the custom_lib/sacpp and custom_lib/isocpp2 directories. On Windows platforms, there are “release” and “debug” configurations provided within the custom library Visual Studio solutions, so you can just select and build these directly.
Please refer to the docs/html/rebuilding_APIs.html page for more details