So one way could be to work with function pointers which would (only) be resolved at runtime, by dynamically loading the SimConnect.dll with LoadLibrary() (the Windows equivalent to dlopen() etc.).
That is, the application would not directly link (at compile/link time) against SimConnect, but explicitly load it during application initialisiation (as a “plugin”).
And whenever we’d want to change the network configuration we would unload and re-load the SimConnect.dll again.
But this is a path that is way to complicated (declaring all the function pointers alone ;)), so I am not going to try it - but if anyone feels inspired I’d be interested to hear about the outcome ![]()